2011-01-10 130 views

回答

109

看起来像{{ data.0 }}。见Variables and lookups

+0

刚刚找到它。是的,这是允许的,它的工作原理。谢谢! – user456584 2011-01-10 20:33:01

+34

烦人的是我不能说`{{data.foo}}`,其中`foo`是一个变量,其中有一个索引值,而不是一个属性名称。 – 2011-01-10 23:06:39

21

{{ data.0 }}应该工作。

假设你写了data.obj django试试data.objdata.obj()。如果他们不工作,它会尝试data["obj"]。在你的情况下,data[0]可以写成{{ data.0 }}。但我建议您在视图中拉data[0]并将其作为单独的变量发送。

30

一个更好的办法:自定义模板过滤器: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 }} 

测试,效果很好^ _^

1

@ jennifer06262016,你绝对可以添加其他过滤器返回内部的对象django Queryset。

@register.filter 
def get_item(Queryset): 
    return Queryset.your_item_key 

在这种情况下,您可以键入像这样{{查询集|指数:X | get_item}}到您的模板访问某些字典对象。这个对我有用。