2010-06-15 61 views
2

干草,Django的多对多过滤问题

我有一个模型,它看起来像这样

class Person(models.Model): 
    name = models.CharField(blank=False, max_length=100) 
    friends = models.ManyToManyField('self', blank=True, null=True) 

我怎么会过滤掉一个人怎么有朋友吗?

我试图

people_with_friends = Person.objects.filter(friends=True) 

,但没有运气。

任何人都伸出援助之手?

谢谢

回答

7

这是怎么回事?

people_with_friends = Person.objects.exclude(friends=None) 
+0

这个工程,但我不知道为什么原来的解决方案不!不管怎么说,还是要谢谢你! – dotty 2010-06-15 11:30:54

+2

我认为最初的解决方案不起作用,因为'朋友'(当有朋友的时候)的值是一个ManyRelatedManager对象,并且您正在测试的值等于True。 – msanders 2010-06-15 11:42:03