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