0
我需要做這樣的事情:Django的模板 - 自定義模板標籤通過2個變量
{% for team in association|get_teams_by_category_gender:category,gender %}
但Django的犯規讓2個參數...我怎麼能這樣做?
基本上,我需要過濾器來返回一個對象列表,所以我可以通過它循環,我會按類別和性別過濾團隊。
感謝, 阿糖胞苷
我需要做這樣的事情:Django的模板 - 自定義模板標籤通過2個變量
{% for team in association|get_teams_by_category_gender:category,gender %}
但Django的犯規讓2個參數...我怎麼能這樣做?
基本上,我需要過濾器來返回一個對象列表,所以我可以通過它循環,我會按類別和性別過濾團隊。
感謝, 阿糖胞苷
這裏,
這是可能的,相當簡單。
Django只允許您的過濾器有一個參數,但沒有理由不能使用逗號將所有參數放入單個字符串中以分隔它們。
因此,舉例來說,如果你想有一個過濾器來檢查,如果變量X是列表[1,2,3,4]你會希望有一個模板過濾器,看起來像這樣:
{%如果X | IS_IN: 「1,2,3,4」 %} 現在,我們可以創建你templatetag這樣的:
from django.template import Library
register = Library()
def is_in(var, args):
if args is None:
return False
arg_list = [arg.strip() for arg in args.split(',')]
return var in arg_list
register.filter(is_in)
How do I add multiple arguments to my custom template filter in a django template?
你好,感謝您的回覆。做「類別,性別」的問題將採取字符串類別。但我希望它採取的對象類別... –
@AraSivaneswaran Django只允許一個參數到您的過濾器,所以你需要發送性別值和類別值作爲一個字符串,這個字符串處理你的templatetag方法使用'split ( '')'。 – dhana
並編寫自己的邏輯。 – dhana