Django 如何在base.html中获取用户值?

Django 如何在base.html中获取用户值?,django,Django,我想处理main base.html中的用户数据,这是我的主模板 我实际上使用的是登录通用视图。当我登录主页时,它会向我提供用户信息,但在所有其他页面中,user为空 我已经阅读了很多关于这方面的内容:request,RequestContext,我已经将django.contrib.auth.context\u processors.auth添加到processors列表中 知道如何让这个变量到处显示吗?有两种方法: 如果您使用的是django 1.4+,从视图返回时,可以使用: def my

我想处理main base.html中的用户数据,这是我的主模板

我实际上使用的是登录通用视图。当我登录主页时,它会向我提供用户信息,但在所有其他页面中,
user
为空

我已经阅读了很多关于这方面的内容:
request
RequestContext
,我已经将
django.contrib.auth.context\u processors.auth
添加到processors列表中

知道如何让这个变量到处显示吗?

有两种方法:

如果您使用的是django 1.4+,从视图返回时,可以使用:

def my_view(request):
    ...
return render(request, 'template.html', ctx)
如果您使用的是较旧的django,或者不喜欢渲染方法,则可以使用以下方式返回RequestContext:

def my_view(request):
   ...
return render_to_response('template.html', ctx, context_instance=RequestContext(request))
编辑:对不起,忘记回答问题了。如果使用上述方法之一呈现模板,并且具有:

  • django.contrib.auth在已安装的应用程序中
  • 在米德尔瓦雷认证
  • 在上下文处理器中进行身份验证 (查看default settings.py文件:)
然后您可以使用:{user}和{{user.is_anonymous}}来了解发生了什么。

两种方法:

如果您使用的是django 1.4+,从视图返回时,可以使用:

def my_view(request):
    ...
return render(request, 'template.html', ctx)
如果您使用的是较旧的django,或者不喜欢渲染方法,则可以使用以下方式返回RequestContext:

def my_view(request):
   ...
return render_to_response('template.html', ctx, context_instance=RequestContext(request))
编辑:对不起,忘记回答问题了。如果使用上述方法之一呈现模板,并且具有:

  • django.contrib.auth在已安装的应用程序中
  • 在米德尔瓦雷认证
  • 在上下文处理器中进行身份验证 (查看default settings.py文件:)

然后你可以使用:{user}和{{user.is_anonymous}}来找出发生了什么事。

谢谢,但我不确定,这是我在等待的。我想我将使用会话来获取信息,这将比user.Ups更简单,扩展后有更完整的答案。谢谢,但我不确定,这是我正在等待的。我想我会使用session来获取信息,这将比user.Ups更简单,并以更完整的答案展开。