W Django istnieje sposób na filtrowanie pustego lub zerowego pola manytomany.
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)
TestModel.objects.exclude(manytomany=None)
AnotherModel.objects.filter(testmodel_set=None)
zadziałało dla mnie. Jeśli używasz nazwy pokrewnej , oczywiście powinieneś jej użyć.Dodając do odpowiedzi @Bernhard, inne możliwe rozwiązanie można osiągnąć za pomocą
Q()
obiektu.from django.db.models import Q filters = Q(manytomany=None) TestModel.objects.filter(filters)
Negacja:
filters = ~Q(manytomany=None) TestModel.objects.filter(filters)
źródło