这可能很简单,但我环顾四周,无法找到答案。从Django模板的列表中引用单个项目的最佳方法是什么?在Django模板中按索引引用列表项?
换句话说,我该如何在模板语言中做相当于{{ data[0] }}
?
谢谢。
这可能很简单,但我环顾四周,无法找到答案。从Django模板的列表中引用单个项目的最佳方法是什么?在Django模板中按索引引用列表项?
换句话说,我该如何在模板语言中做相当于{{ data[0] }}
?
谢谢。
看起来像{{ data.0 }}
。见Variables and lookups。
{{ data.0 }}
应该工作。
假设你写了data.obj
django试试data.obj
和data.obj()
。如果他们不工作,它会尝试data["obj"]
。在你的情况下,data[0]
可以写成{{ data.0 }}
。但我建议您在视图中拉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]
它正常工作与“为”
{{ List|index:forloop.counter0 }}
测试,效果很好^ _^
@ jennifer06262016,你绝对可以添加其他过滤器返回内部的对象django Queryset。
@register.filter
def get_item(Queryset):
return Queryset.your_item_key
在这种情况下,您可以键入像这样{{查询集|指数:X | get_item}}到您的模板访问某些字典对象。这个对我有用。
刚刚找到它。是的,这是允许的,它的工作原理。谢谢! – user456584 2011-01-10 20:33:01
烦人的是我不能说`{{data.foo}}`,其中`foo`是一个变量,其中有一个索引值,而不是一个属性名称。 – 2011-01-10 23:06:39