Django注册表单无法提交问题求助
问题排查与解决
核心问题:表单标签错误
你的HTML模板里,<form>标签被错误地自闭合了:
<form method="POST" action="{% url 'register' %}"></form>
这会导致后续的{% csrf_token %}、{{ form.as_p}}和提交按钮都不在表单范围内,点击提交按钮自然不会触发表单的POST请求,也就无法提交数据。
修正后的模板代码
把表单标签改为正常闭合,将所有表单内容包裹在<form>标签内:
<h1>Register</h1> <div> <form method="POST" action="{% url 'register' %}"> {% csrf_token %} {{ form.as_p}} <input type="submit" value="register" /> </form> </div>
额外检查点(如果修正后仍有问题)
- 确认
CustomUserCreateForm中的name字段是否在你的自定义User模型中存在,Django默认User模型没有name字段,若使用自定义用户模型,需确保模型确实包含该字段,否则表单会静默验证失败。 - 可在视图的POST分支添加日志打印,排查隐藏的验证错误:
if request.method == 'POST': form = CustomUserCreateForm(request.POST) print(form.errors) # 打印错误信息到控制台 if form.is_valid(): user = form.save(commit=False) user.save() login(request, user) return redirect('login') - 确认
urls.py中register路由配置正确,能映射到register_page视图。
内容的提问来源于stack exchange,提问作者WhyDoYouCare
相关产品推荐
相关产品推荐

