2009-12-31 2 views
0

J'ai écrit un modèle de formulaire à utiliser dans différents modèles avec la balise include.django change l'étiquette dans un modèle de formulaire .html inclus - par ex. de "Ajouter" à "Enregistrer"

{% include "crm/contact_form.html" %} 

Ce formulaire comprend un bouton «Soumettre». Maintenant, je veux changer l'étiquette du bouton en fonction des circonstances dans lesquelles le formulaire est utilisé. Par exemple, si le formulaire est inclus dans un modèle d'ajout, l'étiquette doit être "Ajouter" et dans un modèle de détail l'étiquette doit être "Enregistrer".

Comment puis-je accomplir cela?

Répondre

3

Vous aurez soit besoin de mettre l'étiquette dans une variable de contexte où il peut être utilisé par le modèle contact_form.html ou passer de {% include %} à un inclusion tag qui vous permettra de passer des arguments comme ceci:

{% load contact_form %} 
... 
{% contact_form mylabel %} 
+0

Merci qui a fonctionné! J'ai choisi la balise d'inclusion, qui fonctionne bien pour ce cas d'utilisation. –

1

En tant alternative à la méthode de Van, vous pouvez définir la variable dans le modèle englobante via with:

{% with "Add" as mylabel %} 
    {% include "crm/contact_form.html" %} 
{% endwith %} 
+0

Oh c'est super! +1 –

0

Depuis Django 1.3, vous pouvez combiner les inclure et avec les balises

{% include "form_snippet.html" with form=comment_form %} 
Questions connexes