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