Django Model Form提交后不保存不跳转,字段值写入地址栏如何解决
问题根因
你的模板文件中<form>标签未显式指定提交方法为POST,浏览器默认会以GET方式提交表单:
- GET请求会将所有表单字段参数直接拼接在URL后,所以你会看到字段内容出现在地址栏
- 你的视图逻辑仅对
POST请求做数据校验、保存和跳转处理,GET请求不会触发对应逻辑,因此既不会存数据也不会跳转
你之前测试填全/留空字段都没有效果,是因为请求根本没有进入视图的POST处理分支,表单校验逻辑完全没有被执行,和字段是否填写无关。
修复方案
修改Templates.html中的form标签,添加method="post"属性即可:
<!-- 原错误写法 --> <form> <!-- 修正后写法 --> <form method="post">
如果你的表单提交地址和当前页面路由不一致,可以额外加action属性指定提交路由,示例:
<form method="post" action="{% url 'newCustomer' %}"> <!-- 此处newCustomer替换为你urls.py中对应视图的路由name值 -->
内容的提问来源于stack exchange,提问作者Kyle
相关产品推荐
相关产品推荐

