Как отобразить ошибки формы Django '__all__' в шаблоне? - PullRequest
50 голосов
/ 26 марта 2010

У меня есть следующий код формы:

# 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__']

Ответы [ 2 ]

104 голосов
/ 26 марта 2010
{{ form.non_field_errors }}
28 голосов
/ 11 августа 2011

{{ form.non_field_errors }} для ошибок, связанных с формой, а не с полем

{{ form.password.errors }} для ошибок, связанных с текстовым полем, таким как passoword, в этом случае

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...