【问题标题】:Django forms: custom error list formatDjango 表单:自定义错误列表格式
【发布时间】:2010-01-09 22:08:55
【问题描述】:

python 和 django 的新手。使用表单模块并一一解决错误(所以不只是将它们转储在顶部)

我注意到this solution 能够为错误设置自定义格式,就我而言,它是:

<dd class="error">errstr</dd>

并且或多或少复制提供的示例,我有以下内容:

forms.py(我只是为了我的缘故稍微扩展了它)

class DefinitionErrorList(forms.util.ErrorList):

    def __unicode__(self):    
        return self.view_as_dd()

    def view_as_dd(self):
        if not self: 
            return u'' 

        return u'<dd class="error">%s</dd>' % '<br />'.join([u'<span>%s</span>' % e for e in self])

ma​​in.py

from poke.forms import PokeForm, DefinitionErrorList

def create_new(response, useless):

    if response.method == 'POST':
        # They posted something, so collect it (duh)

        f = PokeForm(response.POST, error_class=DefinitionErrorList)

        if f.is_valid():
            cd = f.cleaned_data

模板供参考

<dt>A small message to remind yourself</dt>
{{ form.message.errors }}
<dd>
    <span class="input_border" style="width: 75%;"> {{ form.message }}</span> 
    <span class="tooltip_span">{{ tooltip.message }}</span>
</dd>

问题是,在上述情况下,如果一个字段有错误,它仍然使用默认格式(the ),无论我尝试什么,我都无法使用我的格式。我很确定我错过了一些小事或误解了一些说明。

感谢您的帮助,如果我忘记了任何信息,我很抱歉!

编辑:我正在使用 Django 1.1,如果有帮助的话。为了使其(可能)更清晰,错误显示得很好,只是看起来不像我想要的那样。

【问题讨论】:

    标签: django django-forms


    【解决方案1】:

    在这方面有一张长期存在的票。 http://code.djangoproject.com/ticket/6138

    最新更新说它已修复。看看它是否在后备箱中工作。如果没有,请提交您的错误。如果是,请获取补丁或等到下一个版本。 (虽然我认为最新版本是在票证上的最后更新日期之后)。

    【讨论】:

    • 哦,哈哈。这可能就是原因。因为这是我的第一个项目,而且我只是在学习基础知识,所以我会解决它,而不是去寻找更新的版本/补丁等。不过感谢链接,我决定重新设置 ErrorList 输出的样式,使其看起来与它相同通常会。
    猜你喜欢
    • 1970-01-01
    • 2019-05-11
    • 1970-01-01
    • 2016-03-25
    • 2017-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-19
    相关资源
    最近更新 更多