У меня есть модель, которая выглядит примерно так:
class Business(models.Model):
name = models.CharField('business name', max_length=100)
# ... some other fields
emails = models.ManyToManyField(Email, null=True)
phone_numbers = models.ManyToManyField(PhoneNumber, null=True)
urls = models.ManyToManyField(URL, null=True)
и соответствующая ModelForm:
class BusinessContactForm(forms.ModelForm):
emails = forms.CharField(widget=forms.Textarea(attrs={'rows':4,'cols':32}))
phone_numbers = forms.CharField(widget=forms.Textarea(attrs={'rows':4,'cols':32}))
urls = forms.CharField(widget=forms.Textarea(attrs={'rows':4,'cols':32}))
class Meta:
model = Business
fields = ['emails', 'phone_numbers', 'urls',]
Мой вопрос: как лучше всего загрузить существующие электронные письма, номера телефонов и URL-адреса в виджеты Textarea при представлении формы (по одному на строку в соответствующих виджетах)?
Затем, после того, как форма была изменена и отправлена, как лучше всего добавить новые адреса электронной почты, номера или URL-адреса (отношения m2m) и удалить те, которых больше нет в списке (также убедившись, что не добавлены дубликаты)?