2010-10-04 57 views
4

考虑到以下模型,了解一个家庭,如何选择没有买家的儿童?Django选择带有空的对象ManyToManyField

class Family... 

class Kid(models.Model): 
    name = models.CharField(max_length=255) 
    family = models.ForeignKey(Family) 
    buyer = models.ManyToManyField(Buyer, blank=True, null=True) 

family = get_object_or_404(Family, pk=1) 
for_sale = family.kid_set.filter(buyer... this screws my child trade business 

回答

8

family.kid_set.filter(buyer__isnull=True)应该工作。

+0

谢谢你帮助我光荣的事业:) – 2010-10-04 15:17:10

3

@ piquadrat's answer是正确的。您可以做:

for_sale = Kid.objects.filter(family__pk = 1, buyer = None) 

这可以让你避免一个单独的查询来查找Family实例。