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

时间:2014-03-03 22:10:10

标签: python django django-models

我有一个名为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 :(得分:0)

您可以使用Q objects进行此类查询。

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)