如何在模板中显示 Django '__all__' 表单错误?

Posted

技术标签:

【中文标题】如何在模板中显示 Django \'__all__\' 表单错误?【英文标题】:How do I display the Django '__all__' form errors in the template?如何在模板中显示 Django '__all__' 表单错误? 【发布时间】:2011-02-01 07:48:43 【问题描述】:

我的表单代码如下:

# forms.py
class SomeForm(forms.Form):
    hello = forms.CharField(max_length=40)
    world = forms.CharField(max_length=40)

    def clean(self):
        raise forms.ValidationError('Something went wrong')

# views.py
def some_view(request):
    if request.method == 'POST':
        form = SomeForm(request.POST)
        if form.is_valid():
            pass
    else:
        form = SomeForm()

    data = 
        'form': form
    
    return render_to_response(
        'someform.html',
        data,
        context_instance=RequestContext(request)
    )

# someform.html
 form.hello 
 form.hello.errors 

 form.world 
 form.world.errors 

如何在模板级别显示来自键 __all__ 的错误,而无需在视图中单独提取它?我想避免以下情况:

    if form.errors.has_key('__all__'):
        print form.errors['__all__']

【问题讨论】:

【参考方案1】:
 form.non_field_errors 

【讨论】:

【参考方案2】:

form.non_field_errors 与表单而非字段相关的错误

form.password.errors 在这种情况下与密码相关的文本字段相关的错误

【讨论】:

以上是关于如何在模板中显示 Django '__all__' 表单错误?的主要内容,如果未能解决你的问题,请参考以下文章

Django 分页器模板

Django Rest 框架,如何在 ModelSerializer 中包含“__all__”字段和相关字段?

如何在 Django 模板中使用 __repr__ 方法?

如何在 django 模板中获取类

Django,遍历所有表单错误

_set 在 Django 中用于查询集