Projet

Général

Profil

Bug #58635

Collision entre le filtre upper et firstof

Ajouté par Marie Kuntz il y a plus de 2 ans. Mis à jour il y a plus de 2 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
16 novembre 2021
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non

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

#2

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 ?

#3

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.

#4

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)

#5

Mis à jour par Frédéric Péters il y a plus de 2 ans

  • Statut changé de Nouveau à Fermé

Formats disponibles : Atom PDF