Esto puede ser simple, pero miré a mi alrededor y no pude encontrar una respuesta. ¿Cuál es la mejor manera de hacer referencia a un solo elemento en una lista de una plantilla de Django?
En otras palabras, ¿cómo hago el equivalente {{ data[0] }}dentro del lenguaje de la plantilla?
Gracias.
python
django
django-templates
usuario456584
fuente
fuente

{{ data.foo }}dóndefooestá una variable con un valor de índice y no un nombre de propiedad.Una mejor manera: filtro de plantilla personalizado: https://docs.djangoproject.com/en/dev/howto/custom-template-tags/
como obtener my_list [x] en plantillas:
en plantilla
templatetags / index.py
si
my_list = [['a','b','c'], ['d','e','f']], puede usar{{ my_list|index:x|index:y }}en la plantilla para obtenermy_list[x][y]Funciona bien con "para"
Probado y funciona bien ^ _ ^
fuente
{% 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 }}Deberia trabajar.Digamos que escribió
data.objdjango triesdata.objydata.obj(). Si no funcionan, lo intentadata["obj"]. En su casodata[0]se puede escribir como{{ data.0 }}. Pero te recomiendo que ingresesdata[0]la vista y la envíes como una variable separada.fuente
@ jennifer06262016, definitivamente puedes agregar otro filtro para devolver los objetos dentro de un Queryset de django.
En ese caso, escribiría algo como esto {{Queryset | index: x | get_item}} en su plantilla para acceder a algún objeto de diccionario. Esto funciona para mi.
fuente