django - manytomany पर क्वेरी फ़िल्टर खाली है


96

Django में एक कई फ़ील्ड को फ़िल्टर करने का एक तरीका है जो खाली या अशक्त है।

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)

जवाबों:


152
print TestModel.objects.filter(manytomany=None)

43
और इसके विपरीत संभव हैTestModel.objects.exclude(manytomany=None)
एलेक्स एल

क्या 'OtherModel' में असंबंधित / अनासक्त वस्तुओं को क्वेरी करने का कोई तरीका है? एक से कई मॉडल को साफ करने की कोशिश की जा रही है।
बोजडोज़

2
AnotherModel.objects.filter(testmodel_set=None)मेरे लिए काम करना । यदि आप संबंधित नाम का उपयोग कर रहे हैं , तो आपको निश्चित रूप से इसके बजाय इसका उपयोग करना चाहिए।
फेलिप

6

@ बर्नहार्ड जवाब में जोड़कर, Q()ऑब्जेक्ट का उपयोग करके अन्य संभावित समाधान प्राप्त किया जा सकता है ।

from django.db.models import Q

filters = Q(manytomany=None)

TestModel.objects.filter(filters)

निषेध:

filters = ~Q(manytomany=None)

TestModel.objects.filter(filters)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.