Dans Django, il existe un moyen de filtrer sur un champ manytomany vide ou nul.
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)
fonctionné pour moi. Si vous utilisez un nom associé , vous devriez bien sûr l'utiliser à la place.En plus de la réponse @Bernhard, une autre solution possible peut être obtenue en utilisant l'
Q()
objet.from django.db.models import Q filters = Q(manytomany=None) TestModel.objects.filter(filters)
Négation:
la source