Development #16625
Avoir un templatetags |redressejson (pour la cellule JSON et clés JSON avec des - ou des espaces)
Statut:
Nouveau
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
30 mai 2017
Echéance:
% réalisé:
0%
Temps estimé:
Patch proposed:
Non
Planning:
Non
Description
Quand la cellule JSON reçoit un JSON avec des clés comme "date-de-fin" (qui sont des clés normales en JSON), on ne peut pas les utiliser facilement dans le template ( {{json.data.date-de-fin}}
est refusé).
Plusieurs solutions...
La moche avec laquelle je bidouille actuellement :
{% for k,v in qf.items %} {% if k == 'date-fin-validite' %} <strong>{{v|strptime:"%Y-%m-%d"|date:"d F Y"}}</strong> {% endif %} {% endfor %}D'autres :
- avoir un templatetag qui permette d'extraire un élément d'un dictionnaire :
{% with date_de_fin=json.data|get:"date-fin-validite" %}...
- avoir un templatetag qui pythonise toutes les clés de tous les dicos d'un json
{% with dico=json.data|pythonize %}...
(nom à trouver) - ou la même transformation en amont, dans la vue
Historique
Mis à jour par Thomas Noël il y a presque 7 ans
Exemple de json qu'il faudrait à mon avis gérer :
{ "mes voitures": [ "modèle1": { "marque": "range rover", "annee-d-achat": 1998 } ] }
deviendrait :
{ "mes_voitures": [ "modele1": { "marque": "range rover", "annee_d_achat": 1998 } ] }
Mis à jour par Frédéric Péters il y a plus de 4 ans
On pourrait aussi, quand c'est du code à nous en face, utiliser des underscores pour éviter à avoir rattraper les choses dans combo.