standard run locally google engine deploy app python django google-app-engine django-nonrel

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.