2012-03-28 138 views
6

有沒有任何get()函數呢?我可以通過django模板訪問字典中的特定鍵值嗎?

{% for key, value in choices.items %} 
    <li>{{key}} - {{value}}</li> 
{% endfor %} 

從python我有get()函數來獲取特定鍵的值。但我找不到使用django模板標籤的相應方法。所以我想知道這有可能嗎? 我需要獲取具體的值,因爲使用循環在html源代碼中添加了很多新行。

或者在發送給模板之前應該照顧視圖內的輸出,哪種方法更好?

回答

9

您可以使用{{ choices.items.key }}來訪問特定的dict元素。

雖然沒有理由關心HTML代碼中的空格,典型的最終用戶在閱讀時沒有真正的業務,如果他好奇他總是使用DOM查看器或通過HTML美化器來運行。

+0

是的,的確如此。只是看到它看起來不整潔,我有些惱火^^; – starcorn 2012-03-28 20:55:09

+1

你不能用django的模板語言做前者('choices.items ['key']') – 2012-03-28 21:14:25

+1

回答更新;把它和忍者混在一起工作 – ThiefMaster 2012-03-28 21:15:11

4

如果你想有一個特定的值時,只需將其添加到虛線路徑:

{{ choices.items.somekey }} 

將讓你的choices.items['somekey']的值,如果choices.itemsdict

1

如果選擇類型是像{}這樣的DICT。

{{choices.somekey|default:""}} 

如果choices.items是DICT類型。

{{choices.items.somekey|default:""}} 

試看看小例子。

# In Views.py 
def dict_test(request): 
    my_little_dict = {"hi": "Hello"} 
    .... 
# in Template 
{{my_little_dict.hi}} 
3

我認爲你現在是前進的方向,只是爲了分享我的觀點。你可以做到這一點的方式,以及

{% for value in dict %} 
    {{value}}                 
{% endfor %} 

或鍵,值一樣

{% for key,value in dict.items %} 
    {{key}} : {{ value }} 
{% endfor %} 
0

您可以指定爲{{ choices.key_name }} 它爲我工作。只是簡單

0
{{ choices.values }} 

這給你一個字典中的所有值的列表一次。

相關問題