我有3个模型:帐户,电子邮件和项目。
一个帐户可以有多个电子邮件,项目可以有多个电子邮件,一个电子邮件可以有多个项目。
class Account(models.Model):
name = models.CharField(max_length=255)
class AccountEmail(models.Model):
account = models.ForeignKey(Account, on_delete=models.CASCADE)
email = models.EmailField(max_length=255, unique=True)
class Item(models.Model):
emails = models.ManyToManyField(AccountEmail, related_name='account_emails_products')
name = models.CharField(max_length=255)
可以在项目级别添加电子邮件,无或多(动态无固定编号)。
<input type="email" id="email" size="30" >
<input type="email" id="email" size="30" >
<input type="email" id="email" size="30" >
表格:
class ItemModelForm(forms.ModelForm)
class Meta:
model = Product
我的问题是如何将其添加到表单并保存。
我需要直观地显示为输入表单,收集值,验证并检查所有输入,将它们保存在AccountEmails中,并在创建关系之后。
成为M2M(动态)我可以在ModelForm中表示它们,但是可以使用收集器字段。
如果字段实际上不存在,如何收集信息以进行清洁/验证?