2011-08-31 20 views
6

Estoy implementando un sistema de referencia simple. Tengo un middleware que establece una variable de sesión que identifica al usuario referente. Tengo un modelo que vincula a un usuario referente con el usuario referido. Estoy intentando usar la señal post_save del objeto User para completar este modelo. ¿Cómo accedo al objeto de sesión desde el controlador de señal post_save?Cómo obtener la sesión del controlador de señal en Django

Respuesta

1

No hay forma de hacerlo sin usar un thread specific global variable.

Pero no estoy seguro de que lo necesite. Para mi sistema de recomendaciones e invitaciones, simplemente hago que el usuario se registre de forma normal y después de que se haya creado el usuario, obtenga la referencia de la sesión. En casi todas las situaciones, seguirá siendo la misma sesión.

Si hay algo en su sesión que lo impide, lo agregaría al formulario de crear usuario.

+0

Tengo algunos problemas. 1. Mi sistema de autenticación es una aplicación independiente (basada en la autenticación django) que requiere la activación del correo electrónico. Los usuarios a menudo no inician sesión por primera vez hasta después de que la sesión ha expirado. Por lo tanto, la referencia debe registrarse en la creación. 2. Estoy * intentando * no meterme con auth (o creación) de vistas/plantillas, ya que espero hacerlo completamente aislado del sistema de autenticación (si es posible). En este momento, no se ve bien. –

+0

Sí, vas a tener que usar variables específicas de subprocesos globales ... algo incómodo. –

+0

Gracias por su ayuda. –

0

Puede encontrar documentación útil on using sessions out of views.

+1

Estaba viendo eso, pero no sé cómo obtendría la clave de sesión y tendría que saber qué tipo de almacenamiento de sesión se está utilizando. –

+1

AFAIK esto no funciona, ya que no tiene la clave de sesión en el controlador de señal. – guettli

Cuestiones relacionadas