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

將對象存儲在會話中而不是他們的ID是否是一種很好的做法?
它是否可以「模擬」足以在模板中使用?Django - 在會話中存儲對象

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

最好在會話中存儲一個id。您希望儘可能保持所有會話數據的輕量級。 – cobie

+0

這就是我的想法。所以答案應該是「不,這不是一個好習慣」,不是嗎? –

回答

21

這似乎是一個壞主意。除此之外,如果您將對象存儲在會話中,則在數據庫版本執行時/數據庫版本時不會更改。

4

有例外:

if your object doesnt exist in db yet 

例如,如果您通過多個步驟/視圖構建它(對象)。