簡體   English   中英

循環遍歷 Django 模板中的嵌套字典

[英]Looping through nested dictionary in Django template

我的 Django 模板的上下文字典類似於以下內容:

{'key1':'1',
'key2':'2',
'key3':'3',
'key4':{'key5':{'key6':'6', 'key7':'7', 'key8':'8'}}}

我想遍歷字典並打印如下內容:

一些 label = 6
一些 label = 7
一些 label = 8

如何在我的 Django 模板中實現這一點?

這有什么問題?

<ul>
  {% for key, value in key4.key5.items %}
  <li>{{ key }} : {{ value }}</li>
   {% endfor %}
</ul>

注意:您沒有要求遍歷上下文中的所有鍵,只是訪問key4['key5']內容。 如果這不是您所要求的,請編輯您的問題以使其更清楚;-)

我猜您想在 django 模板中使用 for 循環來執行此操作,您必須首先將字典傳遞給視圖文件中的模板,因此請確保在字典周圍添加方括號,如下所示:

 data = [{'key1':'1',
        'key2':'2',
        'key3':'3',
        'key4':{'key5':{'key6':'6', 'key7':'7', 'key8':'8'}}
        }]
return render(request,'name of template',{'data':data})

然后在 html 模板中:

{% for i in data%}
<p>{{i.key1}}</p>
<p>{{i.key2}}</p>
<p>{{i.key3}}</p>
<p>{{i.key4.key5.key6}}</p>
{% endfor %}

現在,當您執行 for 循環時,您可以訪問 key4 中的所有 itams,就像我在上面輸入{{i.key4.key5.key6}}時一樣。這是 django 模板https://docs 中 for 循環的文檔。 djangoproject.com/en/3.0/ref/templates/builtins/

我假設這就是你想要做的。

如果您只想打印您提到的問題,那么這是可能的,但如果我們不知道字典的確切結構,那么在 django 視圖中可能不在 django 模板中。

您不能在 django 模板中一一打印也是字典的值,但您可以在 django 視圖中執行此操作。

檢查此帖子單擊此處並在視圖中進行一些更改。

這對我有用:

{% for key, value in context.items %}
{% ifequal key "key4" %}
{% for k, v in value.items %}
   some label = {{ v.key6 }}
   some label = {{ v.key7 }}
   some label = {{ v.key8 }}
{% endfor %}
{% endif %}
{% endfor %}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM