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

Django注册表单无法提交,请求排查问题根源

Django注册表单无法提交问题排查与修复

核心问题

你的视图函数在处理POST请求时,没有将提交的表单数据绑定到表单实例上,导致form.is_valid()永远返回False,表单无法保存。

修复后的views.py代码

from django.shortcuts import render, redirect
from . forms import create_user

def sign_up(request):
    # 处理POST请求:将提交的数据传入表单实例
    if request.method == "POST":
        form = create_user(request.POST)
        if form.is_valid():
            form.save()
            return redirect("test-home")
    # GET请求时创建空表单
    else:
        form = create_user()
    
    context = {"form":form}
    return render(request, "user/signup.html", context)

补充排查点

  • 检查表单类create_user:确保它正确继承了django.contrib.auth.forms.UserCreationForm,或者自定义字段时设置了正确的验证规则(比如密码长度、字段必填等)。
  • 模板中显示表单错误:在模板的表单区域添加错误提示,方便排查具体验证失败原因,修改signup.html:
{% include "user/layout.html" %}

{% block content %}
<h1>Sign Up</h1>

<form method="POST">
{% csrf_token %}
    {{ form.as_p }}
    <!-- 显示表单全局错误 -->
    {% if form.non_field_errors %}
        <div class="error">{{ form.non_field_errors }}</div>
    {% endif %}
    <input class="btn login_btn" type="submit" value="Register Account">
</form>

{% endblock %}
  • 确认URL路由与提交地址:当前表单未指定action属性,会默认提交到当前页面URL,这部分逻辑没问题,可确认urls.py中sign_up的路由是否正常映射。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 16:39:53