2013-10-23 47 views
-1

我想創建不會更改所應用變量的原始值的過濾器。如何創建不會更改原始值的模板過濾器

這是一個非常簡單的過濾器:

def increment(mynumber): 
    return mynumber + 1 

JINJA_ENVIRONMENT.filters['increment'] = increment 

如果模板中我有這樣的:看顯示

{% set anumber = 10 %} 
<span>first: {{ anumber|increment }}</span> 
<span>second: {{ anumber|increment }}</span> 

我希望:

first: 11 
second: 11 

,而是我得到:

first: 11 
second: 12 

我該如何實現第一類結果? 我也可以這樣做,以便鏈式過濾器可以傳遞新值嗎? 例如:

<span>first: {{ anumber|increment|increment|increment }}</span> 
<span>second: {{ anumber|increment }}</span> 

將輸出

first: 13 
second: 11 

回答

-1

我真的很抱歉,我不知道在Python變量作爲參考,並且不是價值分配。我的例子太簡單了:實際上我正在處理字典。

的解決方案是簡單:

def myFilter(myDict): 
    returnDict = myDict.copy() 
    # change returnDict .. 
    return returnDict 
相關問題