gpt4 book ai didi

Django request.POST 不包含提交表单的按钮的名称

转载 作者:行者123 更新时间:2023-12-03 19:59:19 24 4
gpt4 key购买 nike

我有一个带有两个不同提交按钮的 Django 表单,在提交表单的 View 上,我需要知道按下了什么提交按钮并相应地采取不同的操作。

从我读到的提交按钮的名称或 ID 应该在 request.POST 字典中的某个地方,但它不在那里!

这是我的表格片段:

<form id="editPaperForm" action="{{paper.editURL}}" method="POST">
<input type="submit" name="savePaperButton" id="savePaperButton" value="Save and Send Later"/>
<input type="submit" name="sendPaperButton" id="sendPaperButton" value="Save and send"/>

...

</form>

在 View 中:
...
if 'sendPaperButton' in request.POST:
return applicants_confirmSend(request, paperID)
else:
return applicants_home(request)

sendPaperButton 永远不会在 request.POST 中,另一个也不是,我应该在别处寻找吗?

我唯一的想法是在发送表单之前添加一个隐藏字段并通过 javascript 修改它,但这似乎有点多余,因为我很确定数据应该在某处......

谢谢!

最佳答案

不要忘记将名称和值参数添加到表单的“按钮”或“输入类型=提交”字段中。我曾经遇到过同样的问题,这让我发疯了。

简而言之,由于 request.POST 包含一个 dict,您需要一个键和一个值。键对应于按钮的名称参数,字典的值对应于按钮的值。

<button type="submit" value="preview">Preview</button>

不会反射(reflect)在 request.POST 中(POST 字典没有键!),而
<button type="submit" value="preview" name="preview">Preview</button> 

将有一个值为“preview”的键“preview”。

关于Django request.POST 不包含提交表单的按钮的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2159795/

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