python - run - Autenticado pero user.is_authenticated sigue siendo falso
run django app locally (2)
Creación de aplicaciones sencillas con GAE / Django-nonrel (no creo que el problema sea específico de GAE o de la bifurcación nonrel, la mayoría le gusta PEBKAC como python / django noob y ocurriría en la instalación básica de django).
Estoy usando django.contrib.auth para la autenticación.
En 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'', )
Creé superusuario con manage.py
Tengo seguidores en las plantillas base.html que se usan en otros por {% extends ''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 %}
Y en urls.py las cosas de autenticación estándar (desde django.contrib.auth.forms importan AuthenticationForm, etc.).
El problema es que puedo autenticarme con éxito, la comprobación de nombre de usuario / contraseña está funcionando (no puedo usar user / pwd incorrectos) y estoy autenticado en las páginas de administración, pero no en las otras páginas, o mejor dicho estoy pero el usuario es nulo (None )
Creo que " django.contrib.auth.context_processors.auth " es la magia que hace que esto suceda, pero que se configura en settings.py como se muestra arriba.
¿Algún consejo sobre cómo rastrear este problema?
EDIT (expandiendo la respuesta de Daniels, ya que no se puede formatear el código en los comentarios)
en views.py tuve: -
def detail(request):
obj = get_object_or_404(MyModel, pk=some_id)
return render_to_response(''myapp/index.html'', {''MyModel'': obj})
Debería haber sido
return render_to_response(''myapp/index.html'', {''MyModel'': obj}, RequestContent(request))
¿Estás usando un RequestContext para renderizar tu plantilla? Los procesadores de contexto no se aplican a menos que lo haga.
Ver django-postman descarta RequestContext . Con eso estás asignando TEMPLATE_CONTEXT_PROCESSORS 2 elementos, estás anulando los elementos predeterminados.