Sql 不等于排除的Django模型查询

Sql 不等于排除的Django模型查询,sql,django,django-models,django-queryset,Sql,Django,Django Models,Django Queryset,我想创建一个具有不相等参数但在排除部分的查询 所有帖子都建议排除不应该相等的参数 所以我需要的是: 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) 但是,正如预期的那样,它不起作用。它与excludep

我想创建一个具有不相等参数但在排除部分的查询

所有帖子都建议排除不应该相等的参数

所以我需要的是:

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)
但是,正如预期的那样,它不起作用。它与excludeparam2=False、param3=False、param4=q相同


所以,如何做到这一点,或者如何正确地链接exclude语句,以便第二个exclude指向第一个exclude,而不是第一个filter

这是一种逻辑问题

排除字段1!=value1与Includefield1=value1相同

因此,您可以使用过滤器metbod作为

Object.objects.filter(param1=p, param4=q).exclude(param2=False, param3=False)

这是一种逻辑问题

排除字段1!=value1与Includefield1=value1相同

因此,您可以使用过滤器metbod作为

Object.objects.filter(param1=p, param4=q).exclude(param2=False, param3=False)

这难道不意味着您希望包含适当值相等的记录吗?filterparam1=p,param4=qNo,这是不同的。如果param4位于建议的第一个过滤器中,则即使param4的值为q,且param2=False和param3=False,也会将其排除在外。只有当param4不是qDoesn时,我才需要排除它。这不意味着您希望包括适当值相等的记录吗?filterparam1=p,param4=qNo,这是不同的。如果param4位于建议的第一个过滤器中,则即使param4的值为q,且param2=False和param3=False,也会将其排除在外。我只需要排除param4不是qHi的情况,第一种方法是不正确的,因为排除是在筛选之后完成的。例如,如果我们在第一种方法中有p行,False,False,q,那么这将被排除逻辑是:从过滤器中找到的任何东西中排除那些在第二种方法中有两个False参数的东西,这将不会被过滤逻辑是:从过滤器中找到的任何东西中排除那些不是q并且两个都为False的东西。嗨,第一种方法不正确,因为排除是在筛选之后完成的。例如,如果我们在第一种方法中有p行,False,False,q,那么这将被排除逻辑是:从过滤器中找到的任何东西中排除那些在第二种方法中有两个False参数的东西,这将不会被过滤逻辑是:从过滤器中找到的任何东西中排除那些不是q并且两个都为False的东西。