2010-01-14 6 views
3

J'utilise les méthodes clean_fieldname dans mes formulaires pour valider les données.Astérisque dans les formulaires de validation django

J'utilise {{field.errors.as_text}} pour afficher les erreurs dans les modèles. Chaque message d'erreur a un astérisque (symbole "*") au début de celui-ci. Existe-t-il un moyen de générer des messages de validation sans astérisques?

(Non, je ne comprends pas moi-même astérisques, je viens raise ValidationError(u'text') de la méthode clean)

Répondre

2

, je viens d'avoir à itérer sur les erreurs et les imprimer sans as_text()

3

Les astérisques sont ajoutés lors de l'impression as_text les erreurs sur le terrain. Voir django/forms/util.py ErrorList pour plus de détails. Il est plus facile de personnaliser les erreurs si vous les imprimez à la place. Le ul recevra une classe "errorlist". Le livre de Django contient une section sur la personnalisation des erreurs de formulaire. Chapitre 7 sous la rubrique "Personnalisation Form Design": http://www.djangobook.com/en/2.0/chapter07/

+2

+1, le style ul avec css est l'approche à prendre. Ma seule correction est de pointer vers une documentation plus récente: http://www.djangobook.com/fr/2.0/chapter07/ (voir Personnalisation de la conception de formulaire) – cethegeek

+0

Mise à jour des informations du livre Django. Merci d'avoir fait remarquer cela. –

+0

Je n'ai généralement pas besoin de style, j'ai généralement besoin de transférer des erreurs via XML et de les montrer à l'utilisateur. – DataGreed

13

Une autre façon:

{{ form.username.errors.as_text|cut:"* " }} 
+1

Si le message d'erreur contient '*' (astérisque + espace) quelque part entre les deux, cela le supprimera également. N'y at-il pas un filtre de modèle qui supprime les caractères de gauche seulement? – Medorator

Questions connexes