Элемент списка ссылок по индексу в шаблоне Django?
это может быть просто, но я посмотрел вокруг и не мог найти ответа. Каков наилучший способ ссылаться на один элемент в списке из шаблона Django?
другими словами как мне сделать эквивалент {{ data[0] }}
в язык шаблонов?
спасибо.
4 ответа:
похоже
{{ data.0 }}
. Смотрите переменные и поиска.
лучший способ: пользовательский шаблон фильтра:https://docs.djangoproject.com/en/dev/howto/custom-template-tags/
например, получить список[x] в шаблонах:
в шаблоне
{% 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)]
если
List = [['a','b','c'], ['d','e','f']]
, вы можете использовать{{ List|index:x|index:y }}
в шаблоне, чтобы получитьList[x][y]
он отлично работает с "for"
{{ List|index:forloop.counter0 }}
проверено и работает хорошо ^_^
{{ data.0 }}
должны работать.допустим, вы написали
data.obj
Джанго пытаетсяdata.obj
иdata.obj()
. Если они не работают, он пытаетсяdata["obj"]
. В вашем случаеdata[0]
можно записать как{{ data.0 }}
. Но я рекомендую вам тянутьdata[0]
в представлении и отправить его как отдельную переменную.
@jennifer06262016, вы можете определенно добавить еще один фильтр, чтобы вернуть объекты внутри Django Queryset.
@register.filter def get_item(Queryset): return Queryset.your_item_key
в этом случае вы должны ввести что-то вроде этого {{ Queryset|index:x|get_item }} в свой шаблон для доступа к некоторому объекту словаря. Это работает на меня.