【问题标题】:django: How to remove bullet point when printing form errorsdjango:打印表单错误时如何删除项目符号
【发布时间】:2013-09-30 11:20:55
【问题描述】:

好的,我有一个表单,然后我想在用户提交表单时打印错误(如果有)。所以在我的模板中,我有代码

{% if form.errors %}
    {{ form.errors }}
{% endif %}

现在,问题是,假设用户忘记输入用户名,django 将显示此错误消息。

username
    - This field is required.

除了“-”是一个项目符号..如何删除项目符号点并使其与用户名内联?我尝试使用 CSS 并内联显示,但没有奏效。

【问题讨论】:

    标签: django django-forms django-templates django-views django-errors


    【解决方案1】:

    除了 CSS 之外,您还可以迭代错误,例如:

    {% for field, error in form.errors.items %}
        {% if field != '__all__' %}{{ field }}{% endif %}
        {{ error | striptags }}
    {% endfor %}
    

    【讨论】:

    • 嗯,在这种情况下,all 是什么?并且剥离标签基本上只是删除变量上的所有其他html和css标签吗?
    • 'all' 包含非字段错误,例如您在 Form.clean() 中提出的错误。 Striptags 删除所有标签,您需要它,因为 {{ error }} 默认情况下带有一些包装。
    • 注意这个方法会去掉all标签,这意味着错误<ul class="errorlist"><li>The two password fields didn’t match.</li></ul>转到纯文本The two password fields didn’t match,所以不再有HTML元素可以附加造型到。如果要保持样式,则必须在模板中添加自己的 HTML 包装器,例如 <p class="errorlist">{{ error | striptags }}</p>
    【解决方案2】:

    这不是一个真正的 django 问题,它是 css。但无论如何,你需要将list-style: none应用到错误列表中,即。

    .errorlist {
        list-style: none;
    }
    

    【讨论】:

    • 嗯,它似乎不起作用,但我会竖起大拇指,因为我认为它应该起作用,唯一的原因是它没有起作用,因为我的其他地方有问题虽然代码。 @I S 的回答也很好。
    猜你喜欢
    • 2019-03-01
    • 1970-01-01
    • 2012-09-18
    • 2012-08-18
    • 2011-07-10
    • 2021-06-06
    • 2021-10-25
    • 2022-08-13
    • 1970-01-01
    相关资源
    最近更新 更多