繁体   English   中英

使用变量名称的嵌套字典项目的Django模板语法

[英]Django template syntax for nested dictionary item using variable names

在Django模板页面上,我正在尝试访问嵌套字典中的值。

books = 
 { 
   1: { 1: 'Alice', 2: 'Bob', 3: 'Marta' }, 
   2: { 1: 'Alice', 3: 'Marta' }, 
   3: { 1: 'Alice', 2: 'Bob' }, 
 }

在页面的某处,我有这两个变量

info.id = 1
detail.id = 2

我想做的是打印项目books[1][2] (如果存在),或者换句话说, books[info.id][detail.id] 我遇到麻烦了,因为我无法访问此嵌套变量。 这在这里解决了 但是,提出的解决方案是使用点表示法访问嵌套的字典项。 但是问题在于,使用变量时这似乎不起作用。 使用该逻辑,我会做:

{{ books.info.id.detail.id }}

但这不会产生任何结果。 使用变量访问字典中的项目时,应如何处理? 请注意,实际项目可能存在或可能不存在,这就是为什么我在使用books[info.id][detail.id]遇到麻烦的原因

您不能直接在模板中执行此操作。 您需要使用自定义模板标签 这将工作:

@register.simple_tag
def nested_get(dct, key1, key2):
    return dct.get(key1, {}).get(key2)

现在,您可以在模板中使用它:

{% load my_tags_library %}
{% nested_get books item.id detail.id %}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM