我如何有多个排除条件?

时间:2018-10-22 00:01:44

标签: django django-models

执行以下查询的正确方法是什么?

sites = Site.objects.all().exclude(itempage__isnull=True or itempage__pk=1)

2 个答案:

答案 0 :(得分:2)

我建议使用Django的Q Objects来构建更复杂的查询。

from django.db.models import Q
Site.objects.exclude(Q(itempage__isnull=True) | Q(itempage__pk=q))

Q对象也支持~运算符的求反,如下所示:

from django.db.models import Q
Site.objects.filter(~Q(Q(itempage__isnull=True) | Q(itempage__pk=q)))

答案 1 :(得分:0)

只是想以另一种方式实现这一目标。只需使用exclude()链接条件即可。

sites = Site.objects.all().exclude(itempage__isnull=True).exclude(itempage__pk=1)