我在模型的帮助下创建了表单。我已经用django形式手动创建了隐藏的输入值,语法如下
<input type="hidden" value="123" name="fourth" />
我的django html页面看起来像这样
first.html
<form action="" method="POST">
{{form.first}}
{{form.second}}
{{form.third}}
<input type="hidden" value="123" name="fourth"/>
</form>
问题是表单提交时我可以获得第一个,第二个,第三个的值,并且可以使用 form.save()插入值。但我无法插入第四个值。因为我手动创建隐藏输入值。如何将第四个值插入数据库。 Plz任何人都帮助我这样做。
我的表格专栏: 第一个第二个第三个第四个
答案 0 :(得分:2)
那里有2个不同的表单变量:
要检索Django表单字段,我会使用类似的东西:
if form.is_valid():
field_name = form.cleaned_data['field_name'].
要获取原始字段第四,您只需访问 request.POST ,如:
yourVar = request.POST['fourth']
# I'm used to the 'get' method like
yourVar = request.POST.get('fourth', '')
如果request.POST.get('fourth', '')
request.POST
来避免错误
我假设你正在使用某种模型表单而你想在执行form.save()
时创建实例,但是你需要将隐藏字段第四个添加到例如,要这样做,你可以这样做:
instance = form.save()
instance.fourth_field = request.POST.get('fourth', '')
instance.save()
我认为如果模型中需要fourth_field
,这可能会返回错误,为避免这种情况,您可以执行以下操作:
if form.is_valid(): # This statement cleans all fields
field1 = form.cleaned_data['first']
field2 = form.cleaned_data['second']
field3 = form.cleaned_data['third']
field4 = request.POST.get('fourth', '')
instance = YourModel(first=first, second=second, third=third, fourth=fourth)
instance.save()