Cela peut être simple, mais j'ai regardé autour de moi et je n'ai pas trouvé de réponse. Quelle est la meilleure façon de référencer un seul élément dans une liste à partir d'un modèle Django?
En d'autres termes, comment puis-je faire l'équivalent de {{ data[0] }}
dans le langage du modèle?
Merci.
python
django
django-templates
user456584
la source
la source
{{ data.foo }}
, où sefoo
trouve une variable avec une valeur d'index et pas un nom de propriété.Un meilleur moyen: filtre de modèle personnalisé: https://docs.djangoproject.com/en/dev/howto/custom-template-tags/
comme get my_list [x] dans les modèles:
dans le modèle
templatetags / index.py
si
my_list = [['a','b','c'], ['d','e','f']]
, vous pouvez utiliser{{ my_list|index:x|index:y }}
dans le modèle pour obtenirmy_list[x][y]
Cela fonctionne bien avec "pour"
Testé et fonctionne bien ^ _ ^
la source
{% for id in article_details.heading.contents.article_ids %} {% if id.type == 'DOI' %} {{ article_details.heading.contents.article_ids.forloop.counter0.value }} {% endif %} {% endfor %}
{{ data.0 }}
devrait marcher.Disons que vous avez écrit des
data.obj
essais djangodata.obj
etdata.obj()
. S'ils ne fonctionnent pas, il essaiedata["obj"]
. Dans votre casdata[0]
peut être écrit comme{{ data.0 }}
. Mais je vous recommande d'extrairedata[0]
la vue et de l'envoyer en tant que variable distincte.la source
@ jennifer06262016, vous pouvez certainement ajouter un autre filtre pour renvoyer les objets dans un ensemble de requêtes django.
Dans ce cas, vous tapez quelque chose comme ceci {{Queryset | index: x | get_item}} dans votre modèle pour accéder à un objet de dictionnaire. Ça marche pour moi.
la source