我有作为参数Q(django.db.models.query_utils.Q)对象的函数,我需要修改它并返回新的Q对象。
在某些情况下,我需要从给定的Q对象中删除当前的查询语句。一般来说,有可能吗? django是否为此构建了它的方法?
我写了自己的功能:
def delete_current_filter(queryset, val):
i = 0
for par in q.query.where.children:
try:
if par.children[1].children[0][3] in val:
del q.query.where.children[i]
i -= 1
except IndexError:
pass
i += 1
q = q.all()
return q
但它不能正常工作,我需要自己删除连接等 - 这是复杂查询中的一大难题(
有谁知道为它构建解决方案?
谢谢。