Dans Django, il existe un moyen de filtrer un ou plusieurs champs vides ou nuls.
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)
print TestModel.objects.filter(manytomany=None)
En ajoutant à la réponse @Bernhard, une autre solution possible peut être obtenue en utilisant l'objet Q()
.
from Django.db.models import Q
filters = Q(manytomany=None)
TestModel.objects.filter(filters)
Négation:
filters = ~Q(manytomany=None)
TestModel.objects.filter(filters)