2013-10-27 84 views
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 = A3其中X是集合

回答

1

像這樣的東西可能會奏效:

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

嵌套QS可能會非常昂貴,但請參閱here