You need to enable JavaScript to run this app. Django中request.POST存在search键却无法获取对应值问题求助
优惠活动
大模型
产品
解决方案
定价
更多

Django中request.POST存在search键却无法获取对应值问题求助

问题原因
  • 表单内存在两个name属性为search的元素:一个是{{form_search.search}}渲染生成的搜索输入框,另一个是提交按钮自身,二者重名导致提交时两个元素的值都会被上传。
  • 你获取到的QueryDict中search对应的值为列表['food', ''],前者是输入框内用户填写的内容,后者是未设置value属性的提交按钮默认上传的空值。
  • Django的QueryDict调用get()方法时,默认返回同键多值列表的最后一个元素,因此你拿到的结果是空字符串,自然没有内容输出。
解决办法

有两种可行方案可任选其一:

  • 修改提交按钮的name属性,避免和输入框重名,比如改为search_submit,修改后的按钮代码如下:
<button type="submit" class="btn btn-primary" name="search_submit">Search!</button>

修改后提交的request.POST中search只会对应输入框的值,直接调用request.POST.get("search")即可正常获取内容。

  • 不修改前端代码,后端改用QueryDict的getlist()方法获取所有同键值,取第一个有效内容即可,示例代码如下:
search_keyword = request.POST.getlist("search")[0]

内容的提问来源于stack exchange,提问作者Wizard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.21 02:24:03