gpt4 book ai didi

python - 如何将隐藏的输入值插入django中的数据库

转载 作者:行者123 更新时间:2023-11-28 17:34:28 24 4
gpt4 key购买 nike

我在模型的帮助下创建了表单。我已经使用以下语法以 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() 插入值。但我无法插入第四个值。因为我手动创建了隐藏输入值。我怎样才能将第四个值插入数据库。请任何人帮助我做到这一点。

我的表格列:第一第二第三第四

最佳答案

那里有 2 个不同的表单变量:

  • Django 表单字段(第一、第二、第三)
  • 原始 表单域(第四个)

要检索 Django 表单字段,我想您正在使用类似的东西:

if form.is_valid():
field_name = form.cleaned_data['field_name'].

要获取 fourth 原始字段,您只需要像这样访问 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 中没有 'fourth' 键时避免错误>

编辑:将非表单字段添加到数据库

我“假设”您正在使用某种模型表单,并且您希望在执行 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()

关于python - 如何将隐藏的输入值插入django中的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31916500/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com