django écraser forme propre méthode
Lors de l'écrasement d'un formulaire propre méthode comment savez-vous si sa validation a échoué sur tous les champs? par exemple, dans le formulaire ci-dessous si j'ai remplacer le propre de la méthode comment puis-je savoir si le formulaire a la validation a échoué sur tous les champs?
class PersonForm(forms.Form):
title = Forms.CharField(max_length=100)
first_name = Forms.CharField(max_length=100)
surname = Forms.CharField(max_length=100)
password = Forms.CharField(max_length=100)
def clean(self, value):
cleaned_data = self.cleaned_data
IF THE FORM HAS FAILED VALIDATION:
self.data['password'] = 'abc'
raise forms.ValidationError("You have failed validation!")
ELSE:
return cleaned_data
Grâce
Vous devez vous connecter pour publier un commentaire.
Vous pouvez vérifier si des erreurs ont été ajoutés à l'erreur dict:
BONUS! Vous pouvez vérifier les erreurs sur des domaines spécifiques:
clean_<field_name>
pour votre domaine. Voir docs.djangoproject.com/en/1.4/ref/forms/validationDjango Doc sur l'Accès à "nettoyer" les données
Utilisation
self.is_valid()
.Bien que son ancien poste, si vous souhaitez appliquer des validations sur plus de 1 terrain de même forme/modelform utilisation
clean()
. Cette méthode retourne cleaned_data dictionnaire.À montrer les erreurs des utilisateurs, vous pouvez utiliser
add_error(<fieldname>, "your message")
méthode. Cela permettra de montrer les erreurs ainsi que le nom de champ plutôt sur la forme. L'exemple est illustré ci-dessous:add_error()
supprime automatiquement le champ de cleaned_data dictionnaire, vous n'avez pas à le supprimer manuellement. Aussi, vous n'avez pas à importer quoi que ce soit pour l'utiliser.la documentation est ici
Si vous voulez juste de validation sur le seul champ de formulaire/modelform utilisation
clean_<fieldname>()
. Cette méthode va prendre les valeurs de cleaned_data dictionnaire et puis vous pouvez vérifier pour les erreurs logiques. Retourne toujours la valeur une fois que vous avez terminé la vérification de la logique.Voici un exemple simple de l'annulation de la
clean()
dansdjango.forms.Form
et aussi à l'aide dedjango-braces
pourAnonymousRequiredMixin
pour exiger que les utilisateurs anonymes visite du Loing Page: