筛选不是其他对象成员的对象

时间:2013-10-27 16:18:07

标签: django django-queryset

我试图在没有运气的情况下得到这个答案。

我的模型看起来像(简化):

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在集合中

1 个答案:

答案 0 :(得分:1)

这样的事可能有用:

Answer.objects.exclude(previous__in=Answer.objects.all().values_list('previous', flat=True))

嵌套QS可能非常昂贵,请参阅here