253 votes

Comment définir une valeur de variable dans un code de modèle?

Dis que j'ai un modèle

 <html>
<div>Hello {{name}}!</div>
</html>
 

Lors du test, il serait utile de définir la valeur de la variable sans toucher au code python qui appelle ce modèle. Donc je cherche quelque chose comme ça

 {% set name="World" %}     
<html>
<div>Hello {{name}}!</div>
</html>
 

Est-ce que quelque chose comme ça existe à Django?

Merci

385voto

John Points 9709

Vous voudrez probablement la balise de modèle avec .

EDIT:

La bonne façon d’utiliser les avec la balise est maintenant : (format plus ancien est toujours pris en charge)

36voto

Karim Points 8533

Un autre moyen qui ne nécessite pas que vous mettez tout dans le bloc « avec » consiste à créer une balise personnalisée qui ajoute une nouvelle variable dans le contexte. Comme dans :

Cela vous permettra d’écrire quelque chose comme ceci dans votre modèle :

Remarque que la plupart de ceci était de cassure

28voto

Roberto Liffredo Points 15265

Il existe des astuces comme celle décrite par John ; Cependant, la langue modèle de Django par sa conception ne supporte pas définissant une variable (Voir l’encadré de la « Philosophie » dans la documentation de Django pour les modèles).
Pour cette raison, la méthode recommandée pour modifier n’importe quelle variable qui est de toucher au code python.

5voto

Sarang Points 169

Ce n’est pas une bonne idée en général. Faire toute la logique en python et passez les données au modèle d’affichage. Modèle devrait être aussi simple que possible pour assurer ceux qui travaillent sur la conception peuvent se concentrer sur la conception plutôt inquiéter la logique.

Pour donner un exemple, si vous avez besoin d’informations dérivées dans un modèle, il est préférable de faire entrer dans une variable dans le python code et puis le transmettre au modèle.

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