我的表格如下:
TableAddFormSet = modelformset_factory(Table, form=TableAddForm)
该模型如下所示:
class Table(models.Model):
restaurant = models.ForeignKey(Restaurant, on_delete=models.CASCADE)
amount_of_people = models.IntegerField()
category = models.CharField(max_length=10)
reserved = models.BooleanField(default=False)
现在模型需要属性'restaurant',我将在表单提交时设置。到目前为止,我已经完成了以下工作:
for form in formset:
form.instance.restaurant = request.user.restaurant
这意味着即使已存在的表单也会循环并更新。是否有更有效的方法将此属性添加到新添加的表单,如:
for form in formset.new_forms():
或者我的实现是解决此问题的最合适方式吗?
答案 0 :(得分:0)
你应该可以像这样使用inlineformset_factory
:
TableAddFormSet = inlineformset_factory(Restaurant, Table, form=TableAddForm)
table_formset = TableAddFormSet(request.POST or None, instance=request.user.restaurant)
顾名思义,它更适用于您创建其中包含formset的表单(因此," restaurant"表单具有多个" table&#34 ;其中的条目),但它应该适用于你正在做的事情。