【问题标题】:Django Form Not Saving the DataDjango 表单不保存数据
【发布时间】:2021-01-14 20:34:32
【问题描述】:

我已经导入了这个from django.contrib.auth.forms import UserCreationFormform 中使用了csrf_token,但当我点击 submit 时,页面仍然会重新加载,但不会将数据保存到数据库中。

def signup(req):
    if req.method == 'POST':
        form = UserCreationForm(req.POST)
        if form.is_valid():
            form.save()
    form = UserCreationForm()
    reg_con={
        'regform': form
    }
    return render(req, 'signup.html', reg_con)

表格

<form action="." method="POST">
    {% csrf_token %}
    {{ regform.as_ul }}
    <input type="submit" value="Sign Up">
</form>

【问题讨论】:

    标签: python django


    【解决方案1】:

    这通常是因为您的表单有问题,但问题是您每次都构建一个 new 表单,因此您看不到哪里出了问题。您应该只在它是 GET 请求的情况下创建一个新表单,所以:

    def signup(req):
        if req.method == 'POST':
            form = UserCreationForm(req.POST)
            if form.is_valid():
                form.save()
        else:
            form = UserCreationForm()
        reg_con={
            'regform': form
        }
        return render(req, 'signup.html', reg_con)

    【讨论】:

      【解决方案2】:

      尝试从form 标记中删除action 属性。也不要忘记在调用form.save()后重定向

      【讨论】:

        猜你喜欢
        • 2017-06-01
        • 2022-01-25
        • 2021-01-27
        • 2019-01-22
        • 2015-12-02
        • 1970-01-01
        • 2018-09-12
        • 2022-10-23
        • 2014-05-19
        相关资源
        最近更新 更多