已验证但user.is_authenticated仍然为false


问题内容

使用GAE / Django-nonrel创建简单的应用程序(我认为问题不特定于GAE或nonrel fork,最可能的PEBKAC是python /
django noob,并且会在基本的django安装中发生)。

我正在使用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模板,该模板在{%扩展了’base.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中设置的,如上所述。

关于如何跟踪此问题的任何提示?

编辑(扩大了Daniels的答案,因为注释中无法进行代码格式化)

在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))

问题答案:

您是否正在使用RequestContext渲染模板?除非您应用上下文处理器,否则不会应用。