保存表单集时向表单集添加额外字段

Add extra field to the formset while saving the formset

我想知道将不是来自 html 表单的数据保存到数据库的替代方法。

这是我的 models.py:

class product(models.Model):
    user = models.ForeignKey("user")
    product = models.CharField(max_length=128)
    cost = models.IntegerField()

这是我的 forms.py:

class productform(forms.ModelForm):

    class Meta:
        model = product
        fields = ["product","cost"]

这是我的views.py

for formset in product_formset:

          cost = formset.cleaned_data['cost']
          product = formset.cleaned_data['product']

          product(
                    product = product,
                    cost = cost,
                    user = request.user,# here user is not coming 
                    ).save()              through the form.

这里我没有使用 formset.save(),而是遍历表单集以保存附加字段 "user"。我的问题是,是否有一种简单的方法可以在不迭代的情况下保存附加字段 "user"。 不对的地方请大家指正。

不,你不能不迭代,但你可以将代码简化为:

for product in product_formset.save(commit=False):
    product.user = request.user
    product.save()