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óndefoo
está 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.obj
django triesdata.obj
ydata.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