Django模型过滤,减少查询次数

1 投票
1 回答
748 浏览
提问于 2025-04-17 20:41

我有一个叫做 ListItem 的模型,我在模板中把它分成不同的类型,像这样:

list_items = ListItem.objects.filter(list__user=request.user.id)
type2list_items = list_item.filter(list__type=1)
type3list_items = list_item.filter(list__type=2)

这样做会产生太多的查询请求,我该怎么做才能只生成一个查询呢?然后我可以在不再访问数据库的情况下,把结果过滤到下面的两个变量里?谢谢!

1 个回答

0

你可以使用 Q对象 来进行这样的查询。

from django.db.models import Q

    list_items = ListItem.objects.filter(Q(list__type=1) |
                           Q(list__type=2)).filter(list__user=request.user.id)

撰写回答