51 votes

Comment afficher les erreurs du formulaire Django '__all__' dans le modèle ?

J'ai le code de formulaire suivant :

# 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 }}

Comment afficher les erreurs de la clé __all__ au niveau du modèle sans avoir à l'extraire séparément dans la vue ? Je veux éviter ce qui suit :

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

107voto

Dmitry Shevchenko Points 11398
{{ form.non_field_errors }}

28voto

Abhaya Points 1274

{{ form.non_field_errors }} pour les erreurs liées au fait que le formulaire n'est pas un champ

{{ form.password.errors }} pour les erreurs liées aux champs de texte, comme le mot de passe dans le cas présent

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X