如何在模板中显示“Django 身份验证系统”的错误?

How to display the errors of the "Django authentication system" in a template?

提问人:cosmoscoder 提问时间:10/2/2023 更新时间:10/2/2023 访问量:24

问:

我为我的项目使用 Django 身份验证系统。 根据模板的结构,我必须单独使用表单字段。这是注册模板:

<section class="form-container___auth">


<div class="form-container">
  <img src="{% static './images/white-logo-all.png'%}" />

    <p class="title">ثبت نام دانش آموز</p>


    <form class="form" method="post" action="">
        {% csrf_token %}
        <div class="input-group">
            <label for="email">ایمیل</label>
            <input type="email" name="{{ form.email.name }}" id="{{ form.email.id_for_label }}" placeholder="" value="{{ form.email.key }}">
        </div>

    <div class="input-group">
            <label for="email">نام کاربری</label>
            <input type="text" name="{{ form.username.name }}" id="{{ form.username.id_for_label }}" placeholder="" value="{{ form.username.key }}">
        </div>

        <div class="input-group">
            <label for="password">رمز عبور</label>
            <input type="password" name="{{ form.password1.name }}" id="{{ form.password1.id_for_label }}" placeholder="" value="{{ form.password1.key}}">
            
        </div>

        <div class="input-group">
            <label for="password">تکرار رمز عبور</label>
            <input type="password" name="{{ form.password2.name }}" id="{{ form.password2.id_for_label }}" placeholder="" value="{{ form.password2.key}}">
        </div>

        <button type="submit" class="sign">ثبت نام</button>
    </form>
    <div class="social-message">
        <div class="line"></div>
        <p class="message">ورود</p>
        <div class="line"></div>
    </div>
    
    <p class="signup">.اگر حساب کاربری دارید ، وارد سایت شوید
        <a rel="noopener noreferrer" href="{% url 'login' %}" class="">ورود</a>
    </p>
</div>
</section>

Django 身份验证系统会检测错误并将其提供给您,但我不知道如何显示模板中每个字段的错误。现在如何显示错误?

django 模板 表单 django 身份验证

评论

0赞 willeM_ Van Onsem 10/2/2023
就像任何形式一样:对于特定于字段的每个字段,以及不特定于字段的 fo 错误。{{ form.fieldname.errors }}{{ form.non_field_errors }}

答:

2赞 willeM_ Van Onsem 10/2/2023 #1

就像任何其他表单一样,所以你可以手动渲染表单 [Django-doc],对于每个字段,你可以通过以下命令访问错误:form

{{ form.fieldname.errors }}

对于不特定于字段的字段,我们可以使用:

{{ form.non_field_errors }}

还可以通过枚举错误来控制呈现错误:

{% for error in form.fieldname.errors %}
    <li><strong>{{ error|escape }}</strong></li>
{% endfor %}