我想知道是否有办法在django应用程序中提供当前用户变量的所有模板,以便我在所有页面中管理登录和注销功能。
这是一种非常普遍的做法,所以必须有一个我错过的明显解决方案。
我知道RequestContext
类,但这意味着我必须将它添加到应用程序中的每个视图,这似乎不切实际。
可能是自定义模板标记吗?
答案 0 :(得分:3)
有一个模板上下文处理器:django.core.context_processors.auth
。查看documentation,您可以访问当前用户和模板中的权限。
答案 1 :(得分: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}
答案 2 :(得分:0)
您可以使用{{ request.user }}
来显示当前用户的名称,或者可以使用{{ request.user.is_authenticated }}
来查看它是否是匿名用户。