You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django表单提交始终进入非POST分支,POST调用无法生效如何解决?

问题根因

你的表单默认以GET方式提交,且缺失Django要求的POST校验凭证,导致无法进入POST分支:

  • HTML的<form>标签未指定method="post",浏览器默认使用GET方式提交请求,request.method取值为GET,自然进入else分支
  • Django默认开启CSRF校验,POST请求必须携带CSRF令牌,否则会被拦截,你的表单中没有添加对应的模板标签

修复步骤

  1. 调整HTML表单的<form>标签属性,添加method="post"
  2. 在表单内部任意位置添加Django CSRF模板标签{% csrf_token %}

修改后的表单开头代码示例

<form style="margin-top: 10px;" method="post">
    {% csrf_token %}
    <!-- 原有表单内容保持不变 -->

可选排查项

如果修改后仍有问题,可按以下顺序排查:

  • 检查路由配置,确认表单提交的路径和ATFrun视图的路由完全匹配,注意末尾斜杠、test_case_ID参数传递是否正确
  • 打开浏览器开发者工具的「网络」标签,提交表单后查看请求方法是否为POST,状态码是否为200/302而非403/404

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 18:48:01