无法在django自定义模板过滤器的参数中传递模型对象

时间:2015-11-26 10:29:26

标签: python django django-templates django-template-filters

我在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是当前登录的用户,usersUser模型类的实例列表。

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

1 个答案:

答案 0 :(得分:4)

您不能在过滤器中使用多个参数。你可以使用simple tag