从额外的模板标签文件访问登录用户

时间:2018-01-13 17:51:56

标签: python django

我尝试创建一个django模板标签,其中我需要登录用户,例如 @register.filter() def foo(id): return Bar.objects.get(creator = request.user.id)

但我得到一个NameError,说没有定义请求。有没有办法在app_extras文件中访问请求对象?

1 个答案:

答案 0 :(得分:2)

你可以使用simple_tag而不是过滤器,它接受" takes_context"参数。

@register.simple_tag(takes_context=True)
def foo(context):
    user = context['request'].user
    return Bar.objects.get(creator=user)

请记住" context"必须是第一个参数。