首页 > 解决方案 > Django Non_Field_Error 显示重复的引导程序

问题描述

我一直在寻找答案,但其中任何一个对我都有用。问题是我想在 HTML 中使用以下代码显示non_field_error :

{% if form.non_field_errors %}
        <div class="alert alert-danger">{{ form.non_field_errors|join:"<br \>" }}</div>
{% endif %}

这会产生以下结果: 重复错误,一个已格式化,另一个未格式化

这是我的forms.py代码:

 user = authenticate(username=username, password=password)
        if not user or not user.is_active:
            self.add_error(None, "Incorrect credentials")

如何仅显示格式化字段而不是两者?


更新:
如果我尝试这种方法:

{% if form.non_field_errors %}
    {% for error in form.non_field_errors %}
        <div class="alert alert-danger">{{ error }}</div>
    {% endfor %}
{% endif %}

我或多或少有同样的问题:同样的错误。出现两次

标签: pythonhtmldjango-formsbootstrap-4

解决方案


如果 non_field_errors 是一个列表,而不是用
标签加入它们,您可以使用 django 的每种语法,例如:

{% if form.non_field_errors %}
    {% for error in form.non_field_errors %}
        <div class="alert alert-danger">{{ form.non_field_errors }}</div>
    {% endfor %}
{% endif %}

尚未对其进行测试,但这是总体思路,我相信语法正确


推荐阅读