2010-11-15 10 views
64

W Django istnieje sposób filtrowania na polu manytomany pustym lub pustym.django - filtr kwerend na wieletomany jest pusty

class TestModel(models.Model): 
    name = models.CharField(_('set name'), max_length=200) 
    manytomany = models.ManyToManyField('AnotherModel', blank=True, null=True) 

print TestModel.objects.filter(manytomany__is_null=True) 

Odpowiedz

94
print TestModel.objects.filter(manytomany=None) 
+27

A odwrotność jest możliwe z 'TestModel.objects.exclude (manytomany = None)' –

+0

Czy istnieje sposób do kwerendy niepowiązanych/niedołączonych obiektów w 'AnotherModel'? Próbując oczyścić wiele z wielu modeli. – bozdoz

+0

Używanie 'AnotherModel.objects.filter (testmodel_set = None)' działało dla mnie. Jeśli używasz [powiązanej nazwy] (https://docs.djangoproject.com/en/dev/topics/db/queries/#backwards-related-objects), powinieneś oczywiście użyć tego. – Felipe