填写表单后,在视图中向表单添加元素

时间:2018-05-08 20:21:05

标签: django django-forms

我的表单中有一个隐藏字段,最容易包含在视图中。这就是我现在所拥有的:

if request.method == 'POST':                                                                                                                                             
    form = Form(request.POST)                                                                                                                             
    if form.is_valid():                                                                                                                                          
        form.name = name                                                                                                                                
        form.save()                                                                                                                                              
        return HttpResponseRedirect('')

提交表单时没有错误,表单元素出现在DB中(因此表单有效)。但是,我添加的元素(form.name not 不会出现在数据库中。为什么这不起作用,我该怎么办呢?

1 个答案:

答案 0 :(得分:1)

您可以使用commit=False保存表单,然后更新instance

if form.is_valid():                                                                                                                                          
    instance = form.save(commit=False)
    instance.name = 'name'
    instance.save()                                                                                                                                   
    form.save_m2m() # required if there are many-to-many fields in the form
    return HttpResponseRedirect('')

有关详细信息,请参阅the ModelForm save() method上的文档。