How do I display the Django '__all__' form errors in the template?
I have the following form code:
# 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 }}
How can I display the errors from the key __all__
at the template level without having to extract it in the view separately? I want to avoid the following:
if form.errors.has_key('__all__'):
print form.errors['__all__']
Solution 1:
{{ form.non_field_errors }}
Solution 2:
{{ form.non_field_errors }}
for errors related to form not field
{{ form.password.errors }}
for errors related to text-field like passoword in this case