【问题标题】:Asterisk in django forms validation messagesdjango表单验证消息中的星号
【发布时间】:2010-01-14 14:23:16
【问题描述】:

我在表单中使用clean_fieldname 方法来验证数据。

我使用{{field.errors.as_text}} 将错误输出到模板。每条错误消息的开头都有一个星号(“*”符号)。有什么方法可以输出不带星号的验证消息?

(不,我自己不包括星号,我只是来自clean 方法的raise ValidationError(u'text')

【问题讨论】:

    标签: django forms


    【解决方案1】:

    所以,我只需要遍历错误并在没有 as_text() 的情况下打印它们

    【讨论】:

      【解决方案2】:

      另一种方式:

      {{ form.username.errors.as_text|cut:"* " }}
      

      【讨论】:

      • 如果错误消息在两者之间包含* (asterix+空格),这也将删除它。没有模板过滤器只从左边删除字符吗?
      【解决方案3】:

      将字段错误打印为文本时添加星号。有关更多详细信息,请参阅django/forms/util.pyErrorList。如果您将错误打印为 as_ul,则更容易自定义错误。 ul 将被赋予一个类“errorlist”。 Django book 有一个关于自定义表单错误的部分。第七章“自定义表单设计”:http://www.djangobook.com/en/2.0/chapter07/

      【讨论】:

      • +1,使用 css 样式化 ul 是采取的方法。我唯一的更正是指向更新的文档:djangobook.com/en/2.0/chapter07(请参阅自定义表单设计)
      • 我通常不需要样式,我通常需要通过 XML 传输错误并将它们显示给用户。
      • 这很奇怪,没有正式的记录方法来获取没有星号的纯文本错误。
      猜你喜欢
      • 2013-09-30
      • 1970-01-01
      • 2018-05-30
      • 2014-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-06
      相关资源
      最近更新 更多