Bug #59661
Donnée calculée avec un prefill sur un cards|objects non trouvé
0%
Description
- Un formdef avec un champ donnée calculée
- la donnée calculée a un prefill qui contient un cards|objects sur un model de fiche qui n'existe pas
Exemple: {{ cards|objects:"inscription-activites-famille"|filter_by:"enfant"|filter_value:form_var_enfant|first|get:"activites_famille_inscription"|default:"" }}
le carddef inscription-activites-famille n'existe pas
Essayer de remplir une démarche, erreur 500
Exception: type = '<class 'AttributeError'>', value = 'inscription-activites-famille' Stack trace (most recent call first): File "/usr/lib/python3/dist-packages/wcs/variables.py", line 1288, in __getattr__ 1286 return LazyFormDef(CardDef.get_by_urlname(attr)) 1287 except KeyError: > 1288 raise AttributeError(attr) 1289 1290 locals: attr = 'inscription-activites-famille' self = <wcs.variables.CardsSource object at 0x7fe26d225c88> File "/usr/lib/python3/dist-packages/wcs/qommon/templatetags/qommon.py", line 696, in objects 694 def objects(forms_source, slug): 695 # assume formdef_source is an instance of CardsSource of FormsSource > 696 return getattr(forms_source, unlazy(slug)).objects 697 698
Fichiers
Révisions associées
Historique
Mis à jour par Lauréline Guérin il y a plus de 2 ans
- Sujet changé de Donnée calculée avec un prefill sur un cards|objects non trouvé à Filtre |objects sur un slug qui n'existe pas, éviter de finir en erreur 500
En fait plus vaste que ça: le filter objects
peut lever un AttributeError
qui finira en 500 dans le cas d'un prefill, un champ commentaire, ...
Faire un try/except au niveau du filter, avec un record_error
Mis à jour par Lauréline Guérin il y a plus de 2 ans
- Fichier 0001-fields-don-t-fail-on-unknown-objects-filter-59661.patch 0001-fields-don-t-fail-on-unknown-objects-filter-59661.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
rattrapage de l'erreur et record au niveau du rendu
Mis à jour par Lauréline Guérin il y a plus de 2 ans
- Sujet changé de Filtre |objects sur un slug qui n'existe pas, éviter de finir en erreur 500 à Donnée calculée avec un prefill sur un cards|objects non trouvé
Mis à jour par Lauréline Guérin il y a plus de 2 ans
- Fichier 0001-fields-don-t-fail-on-unknown-objects-filter-59661.patch 0001-fields-don-t-fail-on-unknown-objects-filter-59661.patch ajouté
note: effet de bord sur get_prefill_value
qui renvoie le template brut si le slug n'existe pas
Mis à jour par Frédéric Péters il y a plus de 2 ans
- Statut changé de Solution proposée à Solution validée
note: effet de bord sur get_prefill_value qui renvoie le template brut si le slug n'existe pas
Ok pour vivre avec ça.
Mis à jour par Lauréline Guérin il y a plus de 2 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 9ec9d316894a3ee7b6934c2f0743e29a8b1a30a5 Author: Lauréline Guérin <zebuline@entrouvert.com> Date: Tue Dec 14 11:46:29 2021 +0100 fields: don't fail on unknown |objects filter (#59661)
Mis à jour par Frédéric Péters il y a plus de 2 ans
- Statut changé de Résolu (à déployer) à Solution déployée
fields: don't fail on unknown |objects filter (#59661)