0

我想在我的主模板 main base.html 中处理用户数据。

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

我已经阅读了很多关于此的内容:request,,RequestContext我已添加django.contrib.auth.context_processors.auth到处理器列表中。

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

4

1 回答 1

3

两种方式:

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

def my_view(request):
    ...
return render(request, 'template.html', ctx)

如果您使用的是较旧的 django 或者您不喜欢渲染方法,您将使用render_to_response返回 RequestContext ,如下所示:

def my_view(request):
   ...
return render_to_response('template.html', ctx, context_instance=RequestContext(request))

编辑:对不起,忘了实际回答问题。如果您使用上述方式之一呈现模板并且具有:

  • INSTALLED_APPS 中的 django.contrib.auth
  • 中间件中的身份验证
  • 在 context_processors 中进行身份验证(查看默认 settings.py 文件:https ://github.com/django/django/blob/master/django/conf/global_settings.py )

然后你可以使用: {{ user }} 和 {{ user.is_anonymous }} 来弄清楚发生了什么。

于 2012-10-03T13:03:42.747 回答