【发布时间】:2016-02-29 09:46:06
【问题描述】:
我在 django 模板中创建了一个自定义过滤器,但是 django 在传递 no 时有一些限制。的参数,它只允许自定义过滤器函数Read more 的一个或两个参数。而且,我想将两个参数传递给我的自定义过滤器,一个是string,第二个是模型类的object。但无法成功完成此操作。
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'
所以,我想要某种解决方案,帮助我在 django 模板的过滤函数中传递 object。
【问题讨论】:
-
为什么要传入
user,不就是检查用户u是否有权限吗? -
对我来说,您的 html 看起来有些混乱。
user来自哪里(在您的 span 标签中)? -
@cezar 我有编辑问题,请查看。
标签: python django django-templates django-template-filters