मैं रेल की पृष्ठभूमि से आ रहा हूं, और मुझे Django में प्रदान किए गए "एसोसिएशन तरीके" का उपयोग करने में कुछ परेशानी हो रही है। मैं दो मॉडल (जो संक्षिप्तता की खातिर सरलीकृत किया गया है), इसलिए की तरह है:Django ManyToMany रिश्ते के 'रिवर्स' का उपयोग कैसे करें?
class User(models.Model):
username = models.CharField(max_length=100, unique=True)
companies = models.ManyToManyField('Company', blank=True)
class Company(models.Model):
name = models.CharField(max_length=255)
Django प्रलेखन के अनुसार:
"यह कोई फर्क नहीं पड़ता कि कौन सा मॉडल ManyToManyField है, लेकिन आपको इसे केवल मॉडल में से एक में रखना चाहिए - दोनों नहीं। "
तो मैं समझता हूँ कि अगर मैं एक उपयोगकर्ता का एक उदाहरण है, उपयोगकर्ता कहा जाता है, मैं कर सकते हैं:
user.companies
मेरे सवाल यह है कि मैं रिवर्स करते है? मैं कंपनी के उदाहरण से संबंधित सभी उपयोगकर्ताओं को कैसे प्राप्त करूं, मान लें कि कंपनी:
company.users # This doesn't work!
ऐसा करने के लिए सम्मेलन क्या है? जो दस्तावेज़ मैंने पढ़ा है वह वास्तव में इसे कवर नहीं करता है। मुझे दोनों तरीकों से काम करने के लिए एसोसिएशन की ज़रूरत है, इसलिए मैं इसे एक मॉडल से दूसरे मॉडल में नहीं ले जा सकता।
बिल्कुल सही जवाब कर सकते हैं। संबंधित_नाम के लिए –
+1। हमेशा * नफरत * 'model_set' वाक्यविन्यास। यह बहुत गंदा लग रहा है। –
मुझे लगता है कि यह मुझे _lazy_ लगता है। कक्षा के नामों के आधार पर उचित पीछे संबंधों का अनुमान लगाना मुश्किल नहीं है। संबंधित_नाम हालांकि इसके साथ काम करना अधिक आसान बनाता है। –