2012-05-10 24 views
12
class Book(models.Model): 
    author = models.ForeignKey(User) 
    name = models.CharField(max_length=100) 

def view(request): 
    book = Book.objects.get(pk=1) 
    request.session['selected_book'] = book 

¿Es una buena práctica almacenar objetos en la sesión en lugar de su id?
¿Será lo suficientemente "envasable" para ser utilizado en las plantillas, por ejemplo?Django - Almacenar objetos en la sesión

<div>{{ request.session.book.author.name }}</div> 
+1

mejor para almacenar una identificación en la sesión. desea mantener todos los datos de la sesión lo más livianos posible. – cobie

+0

Eso es lo que estaba pensando. Entonces la respuesta debería ser "no, no es una buena práctica", ¿no es así? –

Respuesta

21

esto parece una mala idea. Además de cualquier otra cosa, si almacena un objeto en la sesión, no cambiará si/cuando la versión de la base de datos lo haga.

4

no es una excepción:

if your object doesnt exist in db yet 

por ejemplo, si usted lo construye (objeto) a través de muchos pasos/puntos de vista.