3
我有這樣一本字典:Django模板:如何顯示其密鑰中有一個點的字典? d [「key.name」]
dict_name['keyname.with.manydots']
問題:我不能做一個
{{ dict_name.keyname.with.manydots }}
我知道這是不可能的,Django的模板來做到這一點..但是你找到的最好的解決方法是什麼?謝謝!
我有這樣一本字典:Django模板:如何顯示其密鑰中有一個點的字典? d [「key.name」]
dict_name['keyname.with.manydots']
問題:我不能做一個
{{ dict_name.keyname.with.manydots }}
我知道這是不可能的,Django的模板來做到這一點..但是你找到的最好的解決方法是什麼?謝謝!
你可以寫一個custom template filter:
from django import template
register = template.Library()
@register.filter
def get_key(value, arg):
return value.get(arg, None)
且模板中
{{ my_dict|get_key:"dotted.key.value" }}
一個可能的解決方案是創建一個模板標記,其中字典作爲變量,鍵作爲參數。請記住模擬Django對失敗的屬性查找的默認行爲,這不應該引發錯誤,因此請返回空字符串。
{{ dict_name|get_value:"keyname.with.manydots" }}
@register.filter
def get_value(dict_name, key_name):
return dict_name.get(key_name, '')
你嘗試過自定義過濾器? – 2012-08-03 18:45:04