保存formset时,在formset中添加额外的字段

时间:2015-02-23 12:06:05

标签: django django-models django-forms django-views

我想知道将数据保存到数据库的替代方法,这些方法不是来自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()而是在遍历formset以保存附加字段" user"。我的问题是,有一种简单的方法来保存额外的字段" user"没有迭代。 有人请纠正这个问题是否正确。

1 个答案:

答案 0 :(得分:3)

不,如果没有迭代,你就无法做到,但你可以简化代码:

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