1

以前は運が悪かったので、これに対する答えを得ようとしました。

私は(単純化された)次のようなモデルを持っています:

class Answer(models.model):
    previous = models.ForeignKey('self')
    id = IntegerField()

フィルターを定義して、他のオブジェクトAnswerの回答ではないオブジェクトを見つけるにはどうすればよいですか。previousAnswer

例えば:

私は一連の答え[A1, A2, A3, A4]を持っています:

A1.previous = A2
A2.previous = A4
A3.previous = A1
A4.previous = A1

これはセット内で X がセット内のどこにあるかを持たない唯一のものであるため、A3を見つけたいX.previous = A3

4

1 に答える 1

1

このようなものがうまくいくかもしれません:

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

ただし、QS のネストは非常にコストがかかる場合があります。こちらを参照してください。

于 2013-10-27T20:30:28.853 に答える