Python django模板{{form.errors}}未显示

Python django模板{{form.errors}}未显示,python,django,Python,Django,我的网站有问题。 请帮帮我。 这是我的模板文件夹 {%extends“layout.html”%} {%block head%} 登录 身体, html{ 保证金:0; 填充:0; 身高:100%; 背景:#7abecc!重要; } .用户卡{ 宽度:350px; 页边顶部:自动; 页边距底部:自动; 背景#74cfbf; 位置:相对位置; 显示器:flex; 证明内容:中心; 弯曲方向:立柱; 填充:10px; 盒影:0 4px 8px 0 rgba(0,0,0,0.2),0 6px 20p

我的网站有问题。 请帮帮我。 这是我的模板文件夹

{%extends“layout.html”%}
{%block head%}
登录
身体,
html{
保证金:0;
填充:0;
身高:100%;
背景:#7abecc!重要;
}
.用户卡{
宽度:350px;
页边顶部:自动;
页边距底部:自动;
背景#74cfbf;
位置:相对位置;
显示器:flex;
证明内容:中心;
弯曲方向:立柱;
填充:10px;
盒影:0 4px 8px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19);
-webkit盒阴影:0 4px 8px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19);
-moz盒阴影:0 4px 8px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19);
边界半径:5px;
}
.form_容器{
边缘顶部:20px;
}
#表格标题{
颜色:#fff;
}
.login\u btn{
宽度:100%;
背景:#33ccff!重要;
颜色:白色!重要;
}
.login\u btn:焦点{
盒影:无!重要;
大纲:0px!重要;
}
.login\u容器{
填充:02rem;
}
.输入组文本{
背景:f7ba5b!重要;
颜色:白色!重要;
边界:0!重要;
边界半径:0.25rem 0.25rem!重要;
}
.input_用户,
.input_pass:焦点{
盒影:无!重要;
大纲:0px!重要;
}
{%endblock%}
{%block body%}
登记帐户
{%csrf_令牌%}
{{form.username}
{{form.email}
{{form.password1}}
{{form.password2}}
{{form.errors}}
已经有账户了吗?
{%endblock%}
{%block script%}
var form_fields=document.getElementsByTagName('input')
表单_字段[1]。占位符='Username..';
表单_字段[2]。占位符='Email..';
表单_字段[3]。占位符=“输入密码…”;
表单_字段[4]。占位符=“重新输入密码…”;
对于(形式_字段中的var字段){
表单_字段[field].className+=“表单控件”
}

{%endblock%}
这是我通常显示表单错误的方式。
对于非字段错误:

    {% if form.errors %}
        {% for error in form.non_field_errors %}
            <div class="alert alert-danger">
                <strong>{{ error|escape }}</strong>
            </div>
        {% endfor %}
    {% endif %}  
{% if form.field_name.errors %}
    {% for error in form.field_name.errors %}
        <div><small style="color: red;">{{ error|escape }}</small></div>
    {% endfor %}
{% endif %}
{%if form.errors%}
{%表示表单中的错误。非\u字段\u错误%}
{{error | escape}}
{%endfor%}
{%endif%}
对于字段错误:

    {% if form.errors %}
        {% for error in form.non_field_errors %}
            <div class="alert alert-danger">
                <strong>{{ error|escape }}</strong>
            </div>
        {% endfor %}
    {% endif %}  
{% if form.field_name.errors %}
    {% for error in form.field_name.errors %}
        <div><small style="color: red;">{{ error|escape }}</small></div>
    {% endfor %}
{% endif %}
{%if form.field\u name.errors%}
{form.field_name.errors%}中的错误为%
{{error | escape}
{%endfor%}
{%endif%}

您没有看到错误,因为您将表单添加到没有任何数据传递给它的上下文中,即在您的视图中,您编写了:

context['form'] = CreateUserForm()
因此,如果我们认为它从来没有通过任何数据,那么上下文中的<代码>表单实际上没有错误。相反,您应该在上下文中传递POST请求时实例化的表单:

def register(request):
    context = {} # Don't call `dict()`, `{}` will do the same thing
    if request.method == 'POST':
        form = CreateUserForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('login')
    else:
        form = CreateUserForm()
    context['form'] = form
    return render(request,'page/register.html', context)

感谢您的工作,但实际上我无法理解。我不理解其中的区别。Reis Türkçe biliyorsan Türkçe anlatır mısın@İbrahimGunes
CreateUserForm()
是一种不传递数据的表单,而在
CreateUserForm(request.POST)
中,您传递请求的POST数据。以前您编写了
context['form']=CreateUserForm()
没有任何数据的表单不可能真的有任何错误,是吗?因此,我们在if-else中声明了表单,并且在两者都编写了
context['form']=form
之后,根据请求将正确的表单传递给上下文。不,我不懂土耳其语(谷歌翻译)Okeyyy我懂Reis Turksen yazsana merak ettim eyvallah bu arda