2010-10-04 25 views
4

En considérant les modèles suivants, en connaissant une famille, comment puis-je sélectionner les enfants sans acheteurs?Django sélectionner des objets avec ManyToManyField vide

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 

Répondre

8

family.kid_set.filter(buyer__isnull=True) devrait fonctionner.

+0

Merci d'aider ma cause honorable :) –

3

@answer de piquadrat est correct. Vous pouvez également faire:

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

Cela vous permet d'éviter une requête distincte pour rechercher l'instance Family.