Элемент списка ссылок по индексу в шаблоне 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 }} в свой шаблон для доступа к некоторому объекту словаря. Это работает на меня.