不等于排除的 Django 模型查询
Django model query with not equal exclusion
我想创建一个参数不相等但在排除部分的查询。
所有帖子都建议排除应该不相等的参数。
所以我需要的是:
Object.objects.filter(param1=p).exclude(param2=False, param3=False, param4 != q)
我试试
Object.objects.filter(param1=p).exclude(param2=False, param3=False).exclude(param4=q)
但是,正如预期的那样,不起作用它与 exclude(param2=False, param3=False, param4=q)
相同
那么如何去做,或者如何正确地链接排除语句,以便第二个排除指向第一个排除而不是第一个过滤器。
这是一道逻辑题。
Exclude (field1 != value1)
等同于 Include(field1 = value1)
因此,您可以使用 filter()
方法,
Object.objects.filter(param1=p<b>, param4=q</b>).exclude(param2=False, param3=False)
或者
使用带有 ~
符号的 Q()
对象
from django.db.models import Q
Object.objects.filter(param1=p).exclude(<b>~Q(param4=q),</b> param2=False, param3=False)
我想创建一个参数不相等但在排除部分的查询。
所有帖子都建议排除应该不相等的参数。
所以我需要的是:
Object.objects.filter(param1=p).exclude(param2=False, param3=False, param4 != q)
我试试
Object.objects.filter(param1=p).exclude(param2=False, param3=False).exclude(param4=q)
但是,正如预期的那样,不起作用它与 exclude(param2=False, param3=False, param4=q)
那么如何去做,或者如何正确地链接排除语句,以便第二个排除指向第一个排除而不是第一个过滤器。
这是一道逻辑题。
Exclude (field1 != value1)
等同于 Include(field1 = value1)
因此,您可以使用 filter()
方法,
Object.objects.filter(param1=p<b>, param4=q</b>).exclude(param2=False, param3=False)
或者
使用带有 ~
符号的 Q()
对象
from django.db.models import Q
Object.objects.filter(param1=p).exclude(<b>~Q(param4=q),</b> param2=False, param3=False)