Django selects objects with empty ManyToManyField

Given the following family-aware models, how do I choose Kids Without Customers?

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 
+4
source share
2 answers

family.kid_set.filter(buyer__isnull=True) should work.

+8
source

@piquadrat answer is correct. You can also do:

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

This avoids a separate query to search for a Family instance.

+3
source

All Articles