Django Form.Errors消息不展示且form.is_valid后控制台无打印问题求助
Django Forms 问题解决方案
核心问题定位
两个问题的根本诱因是HTML表单的提交路由配置错误:你在表单里指定action="/thank-you",提交请求会直接发给thank_you视图,这个视图没有任何表单校验、数据处理逻辑,你写在forms视图里的POST处理、is_valid校验代码完全没有被执行。
你看到的默认错误提示是浏览器自带的HTML5字段校验提示,不是Django生成的自定义错误。
修复步骤
1. 修正表单提交路由
将form标签的action属性改为空值,提交请求会默认发送到当前表单页对应的forms视图,走你写的校验逻辑:
<form action="" method="POST">
2. 禁用浏览器默认校验
如果要完全走Django的自定义错误提示,给form标签添加novalidate属性,关闭浏览器自带的弹出提示:
<form action="" method="POST" novalidate>
3. 修正路由地址一致性问题
你在forms视图里重定向地址写的是/thank_you(下划线分隔),之前表单里写的是/thank-you(中划线分隔),要保证你的路由配置、重定向地址的写法完全一致,避免跳转404。
修复完成后,表单提交会正常走forms视图的POST逻辑,校验通过后控制台会输出对应打印内容,校验不通过也会正常渲染你配置的自定义错误文本。
内容的提问来源于stack exchange,提问作者Begaiym Kudainazarova
相关产品推荐
相关产品推荐

