2010-09-08 7 views
0

J'ai plusieurs formulaires dans un projet Django. J'essayais d'utiliser le Django fourni as_p pour l'affichage du formulaire en raison de sa simplicité, mais le client veut la liste des erreurs sous le champ. Le as_p de Django l'imprime au-dessus de l'étiquette du champ. Je préfère ne pas ajouter une boucle d'impression de champ dans chaque modèle juste pour ce petit changement. Cela semble être le moyen le moins efficace de s'y prendre.Personnaliser la sortie des formulaires dans Django

Je voulais savoir ce que les autres codeurs Django recommanderaient pour cela. Je pensais qu'il existe au moins 3 options:

- Personnalisation de l'objet Form. Cela semble la solution la plus viable. Quelqu'un sait-il des inconvénients à cela?

-Inclut un modèle qui gère simplement l'affichage des formulaires. Le problème est, ce modèle doit supposer que le formulaire est nommé un certain nom. Que diriez-vous si j'ai plusieurs formes avec des noms différents? Est-ce que quelqu'un sait comment résoudre ce problème?

-Peut-être un filtre personnalisé? Une recherche rapide sur Google me porte à croire que ce n'est pas une option viable, mais peut-être quelqu'un a des informations à l'effet contraire.

Des exemples seraient grandement appréciés!

Répondre

2

Y compris un modèle dont seulement gère l'affichage. Le problème est, ce modèle doit supposer que le formulaire est nommé un certain nom. Comment à propos de si j'ai plusieurs formes étant passé avec des noms différents? Est-ce que quelqu'un sait comment résoudre ce problème?

Vous pouvez inclure votre modèle de formulaire à l'intérieur du bloc with et être ainsi en mesure d'envoyer une valeur pour un de nom.

Vous pouvez également omettre les balises <form> de votre modèle de corps de formulaire et les inclure. Je pense que ce sont les solutions easies, et en profitant de l'héritage de template, vous pouvez créer des formulaires assez flexibles.

+0

Ah, très bien. Je n'étais pas au courant de l'étiquette avec. Merci pour la solution très élégante. Infiniment reconnaissant! –

+0

+1, belle solution. Merci. – ars

Questions connexes