我试图在没有运气的情况下得到这个答案。
我的模型看起来像(简化):
class Answer(models.model):
previous = models.ForeignKey('self')
id = IntegerField()
如何定义过滤器以查找不是Answer
任何其他previous
对象的Answer
答案的[A1, A2, A3, A4]
个对象。
例如:
我有一组答案A1.previous = A2
A2.previous = A4
A3.previous = A1
A4.previous = A1
:
X.previous = A3
我想找到 A3 ,因为这是该集合中唯一一个没有{{1}}的地方,其中X在集合中
答案 0 :(得分:1)
这样的事可能有用:
Answer.objects.exclude(previous__in=Answer.objects.all().values_list('previous', flat=True))
嵌套QS可能非常昂贵,请参阅here。