Python 在Django中对Q对象求反

Python 在Django中对Q对象求反,python,django,django-q,Python,Django,Django Q,我动态创建了一个复杂的Q对象。如何对Q对象求反,以便在filter()中使用它,而不是exclude()?使用~运算符: complex_condition = ~Q(....) 根据: Q可以使用~运算符对对象求反,从而允许组合 结合普通查询和否定(非)查询的查找 谢谢@falsetru 我尝试的是通过另一个被否定的Q对象运行Q对象: ~Q(Q) 如果您不能像~Q(**过滤器)那样使用~运算符,请使用operator.inv(Q) 用法示例 q_filter = Q(user__profi

我动态创建了一个复杂的Q对象。如何对Q对象求反,以便在
filter()
中使用它,而不是
exclude()

使用
~
运算符:

complex_condition = ~Q(....)
根据:

Q
可以使用~运算符对对象求反,从而允许组合 结合普通查询和否定(非)查询的查找

谢谢@falsetru

我尝试的是通过另一个被否定的Q对象运行Q对象:

~Q(Q)

如果您不能像~Q(**过滤器)那样使用
~
运算符,请使用
operator.inv(Q)

用法示例

q_filter = Q(user__profile_id=777)
>> (AND: ('user__profile_id', 777))
@ATOzTOA,
运算符。not_uux
类似于
not x
。使用
operator.inv(x)
oeprator.invert
表示
~x
。对不起,回复得太晚了。
q_filter = Q(user__profile_id=777)
>> (AND: ('user__profile_id', 777))
negated_q_filter = operator.inv(q_filter)
>> (NOT (AND: ('user__profile_id', 777)))