好的,所以我有一个位置和菜单选项的模型以及它们之间的多对多关系。
我想要做的是显示尚未附加到该位置的菜单选项。所以我这样做了..
options = Options.objects.exclude(location=location_pk)
但是,这会导致当前没有任何位置关系的菜单选项不会出现在列表中。
我想做的是这两者的结合:
Options.objects.filter(location=None)
Options.objects.exclude(location=location_pk)
我试过......
options = options.filter(Q(location=None) | ~Q(location=location_pk))
...但是当一个选项有多个位置时,~Q(location=location_pk)
将只匹配另一个位置。
有人可以帮忙吗?
我确信这一定是可能的,但是我的一部分认为它可能不存在,或者解决方案可能需要不必要的复杂。
感谢。
答案 0 :(得分:0)
好的,所以我找到了解决方案。
这似乎可以胜任......
Option.objects.exclude(~Q(location=None) & Q(location=location_pk))
需要仔细查看sql输出以查询查看确切的内容。
感谢它没有花费比我想象的更长的时间并且不复杂。 唷