3

我想知道是否有一种方法可以为 django 应用程序中的所有模板提供当前用户变量,以便我管理所有页面中的登录和注销功能。这是一种非常普遍的做法,所以一定有一个我错过的明显解决方案。我知道这个RequestContext类,但这意味着我必须将它添加到应用程序中的每个视图中,这似乎不切实际。可能是自定义模板标签?

4

3 回答 3

3

为此有一个模板上下文处理器:django.core.context_processors.auth. 查看文档,您可以访问当前用户和模板中的权限。

于 2013-02-03T13:20:12.777 回答
0

您确实可以使用自定义标签来实现这一点。
请注意,默认情况下,自定义标签无法访问request对象,因此无法访问用户数据。为了获得访问权限,request您可以使用属性定义自定义标签takes_context并从上下文中获取请求:

就像是:

@register.inclusion_tag('userdata.html', takes_context = True)
def userdata(context):
    request = context['request']
    user = request.user
    return {'user':user}
于 2013-02-03T13:09:44.013 回答
0

您可以只使用{{ request.user }}显示当前用户的名称,或者例如{{ request.user.is_authenticated }}找出它是否是 AnonymousUser。

于 2017-03-03T09:38:51.870 回答