Desde hace unos días en el escaso tiempo libre que he tenido he estado intruseando google appengine. He estado montar una pequeña aplicación en django y para cosas simples como renderizar una página funcionaba. Pero cuando quieres hacer cosas un poco más elaboradas (en realidad nada del otro mundo) empiezan los problemas:

  • No tienes una bd relacional, si no que un mejunje con las maravillas de google.
  • Por lo tanto no tienes sesiones de buenas a primeras, ya que el sistema de sesiones de django ocupa por defecto el motor basado en base de dato relacional, por ende si no existe, empiezas a obtener errores

Y que errores empiezo a obtener:
'WSGIRequest' object has no attribute 'session'

Después de darle varias vueltas terminé donde debería haber partido: en la documentación de django. Y ahí dan la clave de que se puede usar un cache que no es basado en BD. En algunos sitios lo recomiendan para cosas pequeñas… y es justo el uso que quiero darle.

Por lo tanto que se debe hacer:
En el settings.py…

descomentar en MIDDLEWARE_CLASSES
'django.contrib.sessions.middleware.SessionMiddleware',

y agregar como variable general
SESSION_ENGINE = "django.contrib.sessions.backends.cache"

Y con eso la magia funciona en google appengine.