Django Queryset切片对数据库进行了许多查询

时间:2016-11-16 18:50:06

标签: python django django-queryset

拥有观看代码:

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.一个Queryset是懒惰的。至于减少一个查询?

1 个答案:

答案 0 :(得分:2)

首先通过在再次切片之前将其转换为列表来评估查询集。

df1