2016-11-16 24 views
1

に多くのクエリを作成ビューのコードを持っている:Djangoのクエリセットのスライスは、データベース

posts = category.category_posts.filter(
    ~Q(pk=id), 
    date_published__lte=timezone.now(), 
    is_active=True).order_by('-date_published')[:19] 

right_now = posts[:5] 
actual = posts[5:10] 
old_1  = posts[10:12] 
old_2  = posts[12:14] 
old_3  = posts[14:19] 

テンプレートでレンダリングする場合、Djangoはスライスごとにデータベースにクエリを実行します。ちょうど5.質問集は怠惰です。 1つのクエリを減らすためには?

答えて

2

最初にクエリーセットをリストに変換してから、再度スライスする前に評価してください。

posts = list(posts) 
right_now = ... 
+0

ダニエルありがとうございます! –

関連する問題