python - safe - linebreaksbr django
¿Elemento de la lista de referencias por índice dentro de la plantilla de Django? (4)
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 de {{ data[0] }}
dentro del lenguaje de plantilla?
Gracias.
@ jennifer06262016, definitivamente puede agregar otro filtro para devolver los objetos dentro de un django Queryset.
@register.filter
def get_item(Queryset):
return Queryset.your_item_key
En ese caso, escribiría algo como esto {{Queryset | index: x | get_item}} en su plantilla para acceder a algún objeto del diccionario. Esto funciona para mi.
Parece {{ data.0 }}
. Ver variables y búsquedas .
Una mejor manera: filtro de plantilla personalizada: https://docs.djangoproject.com/en/dev/howto/custom-template-tags/
como obtener List [x] en plantillas:
en plantilla
{% load index %}
{{ List|index:x }}
templatetags / index.py
from django import template
register = template.Library()
@register.filter
def index(List, i):
return List[int(i)]
si List = [[''a'',''b'',''c''], [''d'',''e'',''f'']]
, puede usar {{ List|index:x|index:y }}
en plantilla para obtener la List[x][y]
Funciona bien con "para"
{{ List|index:forloop.counter0 }}
Probado y funciona bien ^ _ ^
{{ data.0 }}
debería funcionar.
Digamos que usted escribió data.obj
django try data.obj
y data.obj()
. Si no funcionan, intenta data["obj"]
. En su caso, los data[0]
se pueden escribir como {{ data.0 }}
. Pero le recomiendo que extraiga los data[0]
en la vista y los envíe como una variable separada.