J'essaye de créer un modèle qui mettra des articles dans une table.Django: utiliser les variables comme indices de tableau?
Controller:
items = Item.all().order('name').fetch(10)
template_values = {'items': items,
'headers': ['Name', 'Price', 'Quantity']}
render('Views/table.html', self, template_values)
Modèle:
<table>
<tr>
{% for header in headers %}
<th>{{header}}</th>
{% endfor %}
</tr>
{% for item in items %}
<tr><td><a href="detail/{{item.CSIN}}">{{item.name}}</a></td><td>{{item.CSIN}}</td></tr>
{% endfor %}
</table>
En ce moment, le modèle est codé en dur pour rechercher certains attributs de item
. Je veux changer ceci afin qu'il recherche les attributs avec les noms qui sont dans headers
, ou alors qu'il cherche les n premiers attributs, où n est la longueur de headers
.
Comment est-ce que je peux faire ceci?
Hmm, pourquoi voudriez-vous mettre la logique du modèle (quelles colonnes afficher) dans la vue? –
Il choisit les colonnes à afficher en fonction de ce que der' est. Cela permet au modèle d'être réutilisé. Le choix des colonnes à afficher est effectué dans le contrôleur, qui indique le modèle via la valeur 'header'. –