Python / Django - 从对象变量值中获取带索引的列表值
我有一个列表,这个列表会传递到一个模板里。我想用特定的索引来访问其中的一个值。问题是,在模板中访问这个列表时是用点号的方式...
举个例子:
object = { id: 1 }
list = [ "zero", "one" ]
print list[ object.id ] ## one
当列表进入模板后,你可以通过点号的方式来根据索引访问值。
list.1 ## one
list[ object.id ] ## this doesn't work
list.object.id ## this doesn't work obv.
我该如何用索引“1”来访问值“one”呢?
提前谢谢你们!
2 个回答
1
我不太同意说这是不可能的。
你可以创建一个模板标签,它可以接受两个参数,并将一个新变量注入到模板的上下文中。
使用起来可以像这样: {% get_list_member list object.id as list_member %}
然后你就可以像普通的模板变量一样使用 list_member {{ list_member }}
你可以看看标准的 URL 模板标签的实现,它也允许将 URL 赋值给模板上下文变量,以便后续使用。
2
我觉得用Django的模板语言是做不到这一点的,因为它的功能设计得比较有限。
你可以把这段代码放在视图里,然后在渲染模板的时候,把list[object.id]
的值传递给模板。