1

我以前试图得到这个答案,但没有运气。

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

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

我想找到A3,因为这是集合中唯一一个没有X.previous = A3X 在集合中的位置

4

1 回答 1

1

像这样的东西可能会起作用:

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

不过,嵌套 QS 可能非常昂贵,请参见此处

于 2013-10-27T20:30:28.853 回答