2016-11-22 5 views
5

साथ क्वेरी स्वयं को संदर्भित वस्तुओं मैं निम्नलिखित Django मॉडल है:Django: कोई भी बच्चा तत्वों

class Category(models.Model): 
    name = models.CharField(maxlength=20) 
    parent = models.ForeignKey('self', null=True) 

ध्यान दें कि क्षेत्र parent स्वयं अर्थात एक वर्ग को संदर्भित एक माता पिता हो सकता है है।

मैं सभी Category वस्तुओं को कैसे ढूंढ सकता हूं जिनमें कोई बाल श्रेणियां नहीं हैं?

उत्तर

6

आप related_query_name साथ isnull उपयोग कर सकते हैं:

class Category(models.Model): 
    # ... 
    parent = models.ForeignKey('self', null=True, related_name='children', related_query_name='child') 

Category.objects.filter(child__isnull=True) 

यहाँ, मैं कम से कम एक सार्थक related_name निर्दिष्ट करने के लिए सिफारिश करेंगे! यदि आप केवल related_name निर्दिष्ट करते हैं, तो related_query_name उस नाम पर डिफ़ॉल्ट (यहां: children)। आप दो, मॉडल का नाम लिए rqn चूक से कोई भी निर्दिष्ट करते हैं: category, नहींcategory_set

Category.objects.filter(category__isnull=True) # not so informative 
+0

मैं इस्तेमाल किया 'Category.objects.filter (children__isnull = सच)' और यह खूबसूरती से काम करता है। धन्यवाद। – Frankline

संबंधित मुद्दे