Django:过滤外键值或无

时间:2012-04-17 18:29:35

标签: python django django-queryset

我可以在不诉诸两个查询的情况下完成以下工作吗?

>>> c = Category.objects.all()[0]
>>> len(Document.objects.filter(category=c))
3
>>> len(Document.objects.filter(category=None))
55
>>> len(Document.objects.filter(category__in=[c, None]))
3

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:2)

使用Q object

from django.db.models import Q
len(Document.objects.filter( Q(category=c) | Q(category=None) ) )