8
votes

Templatetag Django évaluant à un booléen

est-il possible de créer une étiquette de modèle Django qui évalue à un booléen?

par exemple, puis-je faire: xxx

au moment où je l'ai écrit En tant que balise, ce qui fonctionne bien comme ceci: xxx

mais j'étais juste curieux si je pouvais le faire dans l'autre sens comme je pense que ce serait plus gentil si je ne le pensais pas Il faut affecter le résultat à une variable d'abord.

merci!


0 commentaires

3 Réponses :


2
votes

Vous devriez écrire une balise sur mesure {% si%} étiquette de quelque sorte pour gérer cela. À mon avis, il est préférable d'utiliser ce que vous avez déjà mis en place. Cela fonctionne bien et est facile pour tous les autres développeurs de comprendre ce qui se passe.


0 commentaires

6
votes

Une alternative peut être de définir un filtre personnalisé qui renvoie un booléen: xxx

mais qui ne fonctionnera que si votre étiquette dépend d'une autre variable de modèle.


1 commentaires

"Mais cela ne fonctionnera que si votre tag dépend d'une autre variable de modèle." - Ce qui a du sens, car sinon, cela n'appartiendrait pas à une déclaration IF dans le modèle. :)



6
votes

En réalité .. Ce que vous pouvez faire est d'enregistrer la balise comme assignment_tag au lieu de simple_tag puis dans votre modèle, vous pouvez simplement faire {% my_custom_tag comme var_storing_result%} Une fois, puis régulier si des blocs que vous souhaitez évaluer le booléen. Super utile! Par exemple,

Tag xxx

modèle xxx < p> Tag d'affectation officielle DOC


1 commentaires

Je dois dire que je trouve cette méthode bizarre mais toujours intéressante pour uppote. Ne l'utiliserait pas mais heureux de savoir que je pouvais.