2012-05-10 13 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の代わりにSessionに格納するのは良い方法ですか?
テンプレートなどで使用するには十分に「ピック可能」なのでしょうか?Django - セッションにオブジェクトを格納する

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

セッションにIDを格納する方がよいでしょう。すべてのセッションデータを可能な限り軽量に保つ必要があります。 – cobie

+0

それは私が考えていたものです。だから答えは "それは良い習慣ではない"ではないでしょうか? –

答えて

21

これは悪いアイデアのように思えます。それ以外の点では、セッションにオブジェクトを格納すると、データベースのバージョンが変更されても変更されません。

if your object doesnt exist in db yet 

たとえばあなたは多くのステップ/ビューを介して(オブジェクト)を構築する場合:

4

は例外があります。

関連する問題