2011-01-20 11 views
2

使用GAE/Django-nonrel创建简单的应用程序(我认为问题不是特定于GAE或nonrel fork,最类似于PEBKAC作为python/django noob并且会发生在基本django上安装)。已验证,但user.is_authenticated保持为假

我使用django.contrib.auth进行身份验证。

在settings.py

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware',) 

TEMPLATE_CONTEXT_PROCESSORS = (
    'django.contrib.auth.context_processors.auth', 
    'django.core.context_processors.request',) 

我创建了超级用户与manage.py

我在这是在他人所用的模板base.html文件得到了以下{%“延伸的基础。 HTML”%}

{% if user.is_authenticated %} 
    Hello {{ user.username }} 
    [<a href="{% url django.contrib.auth.views.logout %}">sign out</a>] 
{% else %} 
    [<a href="{% url django.contrib.auth.views.login %}">sign in</a>] 
{% endif %} 

而且在urls.py标准认证的东西(从django.contrib.auth.forms进口AuthenticationForm等)。

问题是我可以成功进行身份验证,用户名/密码检查正在工作(不能使用不正确的用户/密码),我在管理页面进行了身份验证 - 但没有在其他页面 - 或者我只是用户为空(无)。

我认为“django.contrib.auth.context_processors.auth”是使这种情况发生,但是这是在settings.py设置如上图所示的魔力。

有关如何跟踪这个问题下任何提示?

EDIT(扩大对丹尼尔斯的答案是不能做的代码中的注释格式)在views.py

我: -

def detail(request): 
    obj = get_object_or_404(MyModel, pk=some_id)  
    return render_to_response('myapp/index.html', {'MyModel': obj}) 

本来应该

return render_to_response('myapp/index.html', {'MyModel': obj}, RequestContent(request)) 

回答

4

您是否在使用RequestContext来呈现您的模板?上下文处理器不适用,除非你这样做。

+0

doh ...它在那里,在“注意 - 是的,请阅读这里,在这里”;) – Ryan

+2

我也有这个问题:正确登录后,我重定向到主页,这个视图返回render_to_response(' MYAPP/shop_list.html”,{ '店':entry_list,},context_instance = RequestContext的(要求))但是,在这一点上,request.user是AnonymusUser所以当主页模板负荷,user.is_authenticated永远是假的。我错过了什么? – juankysmith

+0

救了我,虽然链接不工作了,在这里看到:https://docs.djangoproject.com/en/1.9/ref/templates/api/#django.template.RequestContext – platzhersh

相关问题