`~Q`在我的过滤器中不起作用?

时间:2017-11-09 06:44:09

标签: python django

我想查询status != 4

from django.db.models import Q
...
queryset = User.objects.filter(is_staff=True, is_admin=True, ~Q(status = 4), )

但我错了:

enter image description here

怎么办?似乎~Q不起作用?

2 个答案:

答案 0 :(得分:1)

queryset = User.objects.filter(is_staff=True, is_admin=True).exclude(status=4)

答案 1 :(得分:0)

在python中,关键字参数后不能有位置参数。您必须使用Q作为filter的第一个参数。

queryset = User.objects.filter(~Q(status = 4), is_staff=True, is_admin=True)