Django动态多表单
Django dynamic multiple form
我有添加公司的表格:
class Company(models.Model):
name = models.CharField(max_length=50, )
profile = models.ForeignKey("Profile", blank=True, null=True)
sector = models.ForeignKey("Sector", blank=True, null=True)
我想在单击适当的按钮时在同一站点上动态添加另一个表单。例如单击 "Add Address" 按钮后,表单应扩展为:
city = models.ForeignKey("City", blank=True, null=True)
street_name = models.CharField(max_length=50, blank=True)
并提交此表单将创建新的 Customer、Address 和 CustomerAddress 记录。我已经找到了不完美的解决方案,因为我在 JS 的附加表单和 show/hide 表单中添加了 "blank=True"。这个灵魂引起了另一个问题,因为现在我没有任何形式的验证。
我不想为每个模板创建自定义验证,我在其中添加了多个表单。
每个模型都有不同的表格,而不是使用一种表格。
当用户单击 "Add address" 按钮时,向模板添加隐藏输入。
<input type="hidden" name="add-address" />
然后在您看来,仅在存在隐藏输入时实例化地址表单。
if "add-address" in request.POST:
address_form = AddressForm(request.POST)
else:
address_form = AddressForm()
这样,您就可以将地址表中的字段设为必填。
我有添加公司的表格:
class Company(models.Model):
name = models.CharField(max_length=50, )
profile = models.ForeignKey("Profile", blank=True, null=True)
sector = models.ForeignKey("Sector", blank=True, null=True)
我想在单击适当的按钮时在同一站点上动态添加另一个表单。例如单击 "Add Address" 按钮后,表单应扩展为:
city = models.ForeignKey("City", blank=True, null=True)
street_name = models.CharField(max_length=50, blank=True)
并提交此表单将创建新的 Customer、Address 和 CustomerAddress 记录。我已经找到了不完美的解决方案,因为我在 JS 的附加表单和 show/hide 表单中添加了 "blank=True"。这个灵魂引起了另一个问题,因为现在我没有任何形式的验证。
我不想为每个模板创建自定义验证,我在其中添加了多个表单。
每个模型都有不同的表格,而不是使用一种表格。
当用户单击 "Add address" 按钮时,向模板添加隐藏输入。
<input type="hidden" name="add-address" />
然后在您看来,仅在存在隐藏输入时实例化地址表单。
if "add-address" in request.POST:
address_form = AddressForm(request.POST)
else:
address_form = AddressForm()
这样,您就可以将地址表中的字段设为必填。