python - Subclassing django model doesn't carry the Manager -
अगर मेरे पास एक Django मॉडल है:
वर्ग व्यक्ति (models.Model): नाम = मॉडल.कारफिल्ड (अधिकतम_ लैंग = 45) सरनेम = मॉडल.कारफिल्ड (अधिकतम_लांबी = 45) ऑब्जेक्ट = PersonManager ()
और उसके प्रबंधक:
वर्ग
P> उस वर्ग को विस्तारित करना: वर्ग अभिनेता (व्यक्ति): पास
के पास एक ही प्रबंधक वस्तु नहीं है, लेकिन डिफ़ॉल्ट एक है।
में [5]: person.objects.create_person बाहर [5]: & lt; बाध्य विधि PersonManager.create_person & lt; xxx.PersonManager ऑब्जेक्ट 0x10297d190 & gt; & gt; में [6]: अभिनेता.बाइजेक्ट्स.सेंट_परिवेटर ---------------------------------------- ----------------------------------- विशेषता अभिलेख ट्रेसबैक (सबसे हाल ही में कॉल अंतिम) & lt; ipython-input-6 -468f84e48664 & gt; में & lt; मॉड्यूल & gt; () ---- & gt; 1 अभिनेता.विज्ञानी.कुटेंट_परेटर एट्रिब्यूट: 'मैनेजर' ऑब्जेक्ट में 'create_person' कोई विशेषता नहीं है
ऐसा क्यों है और मैं मैनेजर को सभी उपवर्गों में कैसे प्रचार कर सकता हूं?
आप इस बारे में यहां अधिक पढ़ सकते हैं:
असल में प्रबंधकों को विरासत में नहीं लिया जाता है (साधारण मॉडल से) इसके चारों ओर पाने के लिए आप प्रत्येक मॉडल में मैन्युअल रूप से प्रबंधक को घोषित कर सकते हैं जिसे PersonManager का उपयोग करना चाहिए। या आप व्यक्ति को एक अमूर्त मॉडल बना सकते हैं, इस तरह से सभी उपवर्ग PersonManager के वारिस होंगे यह ध्यान में रखते हुए कि आप निदेशकों, प्रोड्यूसर्स या तकनीशियनों को जोड़ना चाहें, यह संभवतः जाने का तरीका हो सकता है ऐसा करने के लिए आप व्यक्तियों के मेटाकल्स को अमूर्त विशेषता जोड़ते हैं।
वर्ग व्यक्ति (मॉडल। मॉडल): नाम = मॉडल.कारफिल्ड (अधिकतम_लांबी = 45) सरनेम = मॉडल.कारफिल्ड (अधिकतम_लांबी = 45) वस्तुओं = PersonManager () वर्ग मेटा: सार = सच
Comments
Post a Comment