Python / Django - 从对象变量值中获取带索引的列表值

1 投票
2 回答
2252 浏览
提问于 2025-04-16 11:15

我有一个列表,这个列表会传递到一个模板里。我想用特定的索引来访问其中的一个值。问题是,在模板中访问这个列表时是用点号的方式...

举个例子:

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]的值传递给模板。

撰写回答