2013-11-14 81 views
1

我想用字符串(「電荷」)concatonate變量(標識符),然後用它作爲嵌套字典(屬性)的關鍵這是我當前的代碼失敗:Django模板過濾順序執行

attributes|valuebykey:"charge"|add:identifier 

我想,我需要這樣的東西(基本上改變執行順序):

attributes|valuebykey:("charge"|add:identifier) 

但是這句法似乎沒有工作

flter:(只是得到一個數值從DIC t)

@register.filter 
def valuebykey(d, k): 
    try: 
     ret = d.get(k) 
     if ret is None: 
      ret = '' 
    except: 
     ret = '' 
    return ret 

任何想法如何我可以改變執行順序,或有一個過濾器與3個獨立的參數?或任何其他方式,我可以找到一個嵌套字典中的值與一個關鍵的VAR和一個字符串concatonation?

謝謝!

+1

這聽起來像一個模板標籤的工作,而不是一個過濾器! :) –

回答

4

你可以這樣做:

{% with key="charge"|add:identifier %} 
    {{ attributes|valuebykey:key }} 
{% endwith %} 
+0

哦,那真的很好,我看到自己現在正在重寫一大塊模板......謝謝! – jayjay