Bug #58635
Collision entre le filtre upper et firstof
0%
Description
J'ai voulu mettre en majuscules un champ dans un firstof
:
{% firstof form_var_nom_parent1|upper form_var_nom_parent2|upper "" %}
Si form_var_nom_parent1 est vide (
None
), ça ressort NONE
au lieu d'évaluer la suite. Je suppose que c'est pareil pour tous les filtres ou en grande partie.
Historique
Mis à jour par Lauréline Guérin il y a plus de 2 ans
{% firstof form_var_nom_parent1|default:""|upper form_var_nom_parent2|default:""|upper %}
Ca résoudrait pas le soucis ?
Mis à jour par Marie Kuntz il y a plus de 2 ans
Ça a l'air de marcher, merci pour le contournement.
Ça me semble intéressant de corriger le problème quand même, je laisse le ticket ouvert.
Mis à jour par Thomas Noël il y a plus de 2 ans
Pour moi c'est pas vraiment un bogue, et la solution de Lauréline n'est pas un contournement... upper est un filtre Django (natif) qui cherche en entrée une chaine de caractère, or quand une variable n'est pas renseignée c'est "None" (et donc upper fait son travail, et renvoie NONE). On a ce comportement un peu tout le temps. On pourrait surcharger upper et tout un tas d'autres machin, mais bon...
Une solution que je trouverai plus propre :
{% firstof form_var_nom_parent1 form_var_nom_parent2 as nom_parent %}{{ nom_parent|upper }}
(mais je peux être contredit sur ma non-envie de surcharger upper pour jouer de la magie, c'est juste un peu sans fin)