【问题标题】:Get newly added forms from django formset从 django formset 获取新添加的表单
【发布时间】:2017-09-14 18:23:43
【问题描述】:

我的表单集如下:

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():

或者我的实现是解决这个问题的最合适的方法吗?

【问题讨论】:

    标签: python django django-forms formset formsets


    【解决方案1】:

    你应该可以像这样使用inlineformset_factory:

    TableAddFormSet = inlineformset_factory(Restaurant, Table, form=TableAddForm)
    table_formset = TableAddFormSet(request.POST or None, instance=request.user.restaurant)
    

    顾名思义,它更适用于创建其中包含表单集的表单(因此,其中包含多个“表格”条目的“餐厅”表单),但它应该适合您'也在做。

    【讨论】:

      猜你喜欢
      • 2014-03-24
      • 2019-11-27
      • 1970-01-01
      • 2019-04-15
      • 1970-01-01
      • 2018-09-21
      • 2015-10-29
      • 2022-08-14
      • 1970-01-01
      相关资源
      最近更新 更多