2012-03-20 60 views
5

我想模板傳遞到截止濾光片,這樣的事情Django的模板傳遞一個模板變量爲截止濾光片

{{ myVariable|cut:"something + templateVariable" }} 

我已經試過:

{{ myVariable|cut:"something"|add:templateVariable }} 

{{ myVariable|cut:"something {{ templateVariable }}" }} 

但這些不起作用。

這可能嗎?

回答

8

應該使用一個臨時變量工作with tag

{% with myFilter="something"|add:templateVariable %} 
    {{ myVariable|cut:myFilter }} 
{% endwith %} 

或者在Django 1.2及以上:

{% with "something"|add:templateVariable as myFilter %} 
    {{ myVariable|cut:myFilter }} 
{% endwith %} 

添加不支持串的級聯和詮釋,但你可以很容易地使一個template filter,可以轉換爲字符串,例如:

from django import template 

register = template.Library() 

@register.filter 
def to_unicode(mixed): 
    return unicode(mixed) 

會允許這樣的模板標籤表達some_int|to_unicode|add:'foo'

+1

我發現它不起作用,因爲你不能使用'add'過濾器來連接一個字符串和一個整型變量。我只是創建了一個客戶模板標籤來處理這個問題,並使用您編寫的代碼使事情變得更簡單 – zentenk 2012-03-20 17:14:35