簡體   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