Project

General

Profile

Développement #16625

Avoir un templatetags |redressejson (pour la cellule JSON et clés JSON avec des - ou des espaces)

Added by Thomas Noël almost 8 years ago. Updated over 5 years ago.

Status:
Nouveau
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
30 May 2017
Due date:
% Done:

0%

Estimated time:
Patch proposed:
No
Planning:
No

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 :
  1. avoir un templatetag qui permette d'extraire un élément d'un dictionnaire : {% with date_de_fin=json.data|get:"date-fin-validite" %}...
  2. avoir un templatetag qui pythonise toutes les clés de tous les dicos d'un json {% with dico=json.data|pythonize %}... (nom à trouver)
  3. ou la même transformation en amont, dans la vue

History

#1

Updated by Thomas Noël almost 8 years ago

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
     }
  ]
}

#2

Updated by Thomas Noël over 5 years ago

Je viens de me faire embêter par un tel JSON.

#3

Updated by Frédéric Péters over 5 years ago

On pourrait aussi, quand c'est du code à nous en face, utiliser des underscores pour éviter à avoir rattraper les choses dans combo.

Also available in: Atom PDF