如何为所有django模板添加方法?

时间:2012-05-25 14:14:46

标签: django django-templates

为项目中的所有模板添加类似方法的功能的最佳方法是什么?

我需要的方法如下:

def has_access(user, code):
    return user has access to code

在模板中,它可以像这样使用:

{% if has_access(request.user, 'add-project') %}
    html code here
{% endif %}

自定义过滤器不起作用,因为我没有“过滤”任何东西。另外,根据我的看法,自定义上下文处理器不接受额外的参数。

不确定如何在django中执行此操作。

1 个答案:

答案 0 :(得分:2)

自定义过滤器实际上可行:

{{ user|has_access:code }}

自定义模板标记可以使用:

{% has_access user code %}

中间件可以正常工作......但是如果没有更多信息,很难说什么是解决问题的最佳方法。