मैं निम्नलिखित कोड है:फिल्टर करने के लिए क्वेरी सेट एक प्रबंधक लेखन परिणाम
class GroupDepartmentManager(models.Manager):
def get_query_set(self):
return super(GroupDepartmentManager, self).get_query_set().filter(group='1')
class Department(models.Model):
name = models.CharField(max_length=128)
group = models.ForeignKey(Group)
def __str__(self):
return self.name
objects = GroupDepartmentManager()
... और यह ठीक काम करता है। केवल एक चीज यह है कि मुझे को group=(the group specified by group = models.ForeignKey(Group))
के साथ प्रतिस्थापित करने की आवश्यकता है। मेरे पास यह निर्धारित करने का प्रयास करने में काफी समय है कि क्या विदेशी कुंजी को कक्षा में या get_query_set फ़ंक्शन में, या क्या हो सकता है। मुझे पता है कि आप इसे group.department_set.filter(group=desired group)
के साथ पूरा कर सकते हैं, लेकिन मैं व्यवस्थापक मॉडल के लिए यह मॉडल लिख रहा हूं, इसलिए मुझे एक चर का उपयोग करने की आवश्यकता है और = चिह्न के बाद स्थिर नहीं है।
मुझे समझने में कुछ परेशानी है कि आप क्या हासिल करने की कोशिश कर रहे हैं। क्या आप विभाग_instance.objects.all() को केवल विभागों को लौटा सकते हैं जो विभाग_instance के समान समूह में हैं? - मासीज Pasternacki 0 सेकंड पहले –
हाँ जॉन आपका मामला स्पष्ट नहीं है। क्या परिभाषित किया गया है कि किस समूह को विभाग.objects.all() द्वारा चुना जाना है, उदाहरण के लिए? – kibitzer
ठीक है, तो समूह की एक सूची है। प्रत्येक समूह में कुछ विभाग हैं। मेरे पास कुछ कर्मचारी भी हैं। प्रत्येक कर्मचारी वास्तव में एक समूह और एक विभाग से संबंधित है। जब मैं किसी कर्मचारी को संपादित करता हूं, तो विभागों की ड्रॉप-डाउन सूची डेटाबेस के सभी विभागों को दिखाती है, न कि केवल कर्मचारी के समूह में विभाग। तो, मैं केवल कर्मचारी के समूह में विभाग दिखाना चाहता हूं। मैंने सोचा कि मैं विभाग_सेट परिणामों को किसी विशेष समूह के भीतर विभागों को सीमित करके ऐसा कर सकता हूं। शायद मैं वास्तव में उलझन में हूं। लेकिन यही वह है जिसे मैं हासिल करने की कोशिश कर रहा हूं। – John