的論點,我創建在Django模板的自定義過濾器,不過在Django在沒有經過一定的制約。它只允許一個或兩個參數用於自定義過濾器功能Read more。而且,我想兩個參數傳遞給我的自定義過濾器一個是string
和第二個是模型類的object
。但不能夠成功地完成這一點。不能通過模型的對象在Django自定義模板過濾器
的index.html
{% load has_permission_filter %}
{% for u in users %}
<span class={{ user|has_location_perm:('user.view_user', u)}}>View</span>
{% endfor %}
在上述模板user
是當前登錄的用戶和users
是User
模型類的實例的列表。
has_permission_filter.py
def has_location_perm(user, args):
perm_str, obj = args[0], args[1]
// business logic
if user.has_perm(perm_str) and business_logic_check(perm_str, obj):
return 'allow'
else:
return 'not-allow'
所以,我想一個某種形式的解決方案,它可以幫助我在過濾函數傳遞object
從Django的模板。
爲什麼你需要在'user'傳遞,你不只是檢查,如果用戶'u'擁有的權限? – Sayse
對我來說你的html看起來有點混亂。 'user'來自哪裏(在你的span標籤中)? – cezar
@cezar我有編輯問題,請參閱。 –