Pode ser simples, mas olhei em volta e não consegui encontrar uma resposta. Qual é a melhor maneira de fazer referência a um único item em uma lista de um modelo Django?
Em outras palavras, como faço o equivalente {{ data[0] }}
no idioma do modelo?
Obrigado.
python
django
django-templates
user456584
fonte
fonte
{{ data.foo }}
ondefoo
está uma variável com um valor de índice e não um nome de propriedade.Uma maneira melhor: filtro de modelo personalizado: https://docs.djangoproject.com/en/dev/howto/custom-template-tags/
como get my_list [x] em modelos:
no modelo
templatetags / index.py
se
my_list = [['a','b','c'], ['d','e','f']]
, você pode usar{{ my_list|index:x|index:y }}
em um modelo para obtermy_list[x][y]
Funciona bem com "para"
Testado e funciona bem ^ _ ^
fonte
{% 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 }}
Deveria trabalhar.Digamos que você escreveu
data.obj
tentativas de djangodata.obj
edata.obj()
. Se eles não funcionarem, ele tentadata["obj"]
. No seu caso,data[0]
pode ser escrito como{{ data.0 }}
. Mas eu recomendo que você puxedata[0]
a visualização e envie-a como uma variável separada.fonte
@ jennifer06262016, você pode definitivamente adicionar outro filtro para retornar os objetos dentro de um Queryset django.
Nesse caso, você digitaria algo como este {{Queryset | index: x | get_item}} em seu modelo para acessar algum objeto de dicionário. Funciona para mim.
fonte