Je veux faire quelque chose d'anodin dans un modèle django mais difficile à comprendre. Supposons que j'ai une liste field_list = ['a', 'b', 'c'] et un conteneur nommé report_item. Dans un modèle que je veux faire essentiellement ceci:Comment créer une référence dynamique de conteneur de modèles django
{% for fld_name in field_list %}
<td>{{ report_item.{{fld_name}} }}</td>
{% endfor %}
J'ai vérifié la report_item.a, .B, .c sont accessibles (même si elles ne sont pas que cela devrait être ok). J'ai essayé toutes les combinaisons possibles de citer, etc. et recherche sur le web solutions, lisez les docs N fois continuer encore obtenir cette erreur:
Could not parse the remainder: '{{fld_name' from 'field_list.{{fld_name'
Votre aide est grandement appréciée.
EDIT , on m'a demandé ci-dessous comment je construis mon ITEMS_LIST:
context[ "items_list" ] = MyModel.objects.filter(...)
et j'ai:
context[ "field_list" ] = [
[ "Date Placed", "date_placed" ],
...
]
et dans le modèle je:
{% for report_item in items_list %}
{% for fld_hdr, fld_name in field_list %}
{{ report_item.{{fld_name}} }}
{% endfor %}
{% endfor %}
Comme je l'ai déjà dit, si je le fais:
{{ report_item.date_placed }}
cela fonctionne très bien.
Vous aurez besoin d'un filtre de modèle personnalisé pour cela. –
exemple? Je ne vois pas comment un filtre pourrait aider à résoudre ce problème. – staggart