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.