2012-05-10 15 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 

Czy dobrą praktyką jest przechowywanie obiektów w sesji zamiast ich identyfikatora?
Czy będzie to "możliwe do wybrania" na przykład w szablonach?Django - Przechowywanie obiektów w sesji

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

lepiej przechowywać identyfikator w sesji. chcesz, aby wszystkie dane sesji były jak najmniejsze. – cobie

+0

Tak właśnie myślałem. Odpowiedź brzmi: "nie, to nie jest dobra praktyka", czyż nie? –

Odpowiedz

21

To wydaje się złym pomysłem. Poza wszystkim innym, jeśli przechowujesz obiekt w sesji, nie zmieni się on, jeśli/gdy wersja bazy danych to zrobi.

4

istnieje wyjątek:

if your object doesnt exist in db yet 

na przykład, jeśli go zbudować (Object) przez wiele etapów/widoki.

Powiązane problemy