2016-04-20 31 views
0

我在想如果我們可以將對象字典傳遞給模板並將其循環放入模板中。是否可以將視圖中的對象字典傳遞給模板

這是我的結構:

{ 
    'Communication': [ 
         [EchoCase: EchoCase object, EchoDescription: EchoDescription object], 
         [EchoCase: EchoCase object, EchoDescription: EchoDescription object] 
         ], 
    'escalations': [[EchoCase: EchoCase object, EchoDescription: EchoDescription object], 
        [EchoCase: EchoCase object, EchoDescription: EchoDescription object]] 
} 

它基本上是一本字典,其中每個鍵的值是列表的列表。

我想知道是否有辦法Django模板內,或者這種結構太複雜在這個循環中,

+4

是的,你可以,你掙扎着什麼? – Sayse

+0

Hi Sayse,謝謝你的回答,我嘗試了不同的結構,就像Paul建議的那樣,但它不起作用。在Paul的例子中,值應該包含一個EchoCase對象。 – Virtuose

回答

0

我設法讓它的工作用保羅的結構的東西

{% for category, liste in template_dictionnary.items %} 
    <ul> 
     <li> {{ category }} </li> 
     <li> {{ liste}} </li> 
      {% for val in liste %} 
       <li>Val: {{ val.0.comment }}</li> <!-- val.0 is an EchoCase, val.1 is an EchoDescription --> 
       <li>Val: {{ val.1.field }}</li> 
      {% endfor %} 
     </li> 
    </ul> 
{% endfor %} 

謝謝保羅

+0

沒問題,我最初誤解了你的結構,但是你可能會考慮你的查詢集是如何將數據放在一起作爲字典的,然後你可以使用帶有子列表的字典值列表。 – Paul

0
{% for key, value_list in data %} 
    <ul> 
     <li> {{ key }} 
      <ul> 
      {% for value in value_list %} 
       <li>{{ value }}</li> 
      {% endfor %} 
      </ul> 
     </li> 
    </ul> 
{% endfor %} 

但它看起來像回聲案例和回聲說明是相關所以你可能只是想使用相關領域,並做{{echocase}} {{echocase.description}}或類似

+0

嗨保羅,謝謝你的回答,當我這樣做,我只是有關鍵

  • Ç
      \t \t \t \t \t \t \t
    • 第一個字母o
    • \t \t \t
  • Ë
      \t \t \t \t \t \t \t
    • 小號
    • \t \t \t
Virtuose

+0

哎呦,我會讓它詞典列表。 [{ '通信':[ [EchoCase:EchoCase對象,EchoDescription:EchoDescription對象], [EchoCase:EchoCase對象,EchoDescription:EchoDescription對象] ], '上報':[[EchoCase:EchoCase對象, EchoDescription對象], [EchoCase:EchoCase對象,EchoDescription:EchoDescription對象]] – Paul

+0

當使用您的代碼時:{u'Communication':[[EchoCase:EchoCase object>,] ,[]],u'escalations':[]} /usr/local/lib/python2。7/dist-packages/django/template/defaulttags.py:208:RemovedInDjango110Warning:需要2個值才能在for循環中解壓;得到1.這會在Django 1.10中引發異常。 RemovedInDjango110Warning) – Virtuose

相關問題