जवाब जो दावा करते हैं कि Django मॉडल Meta
जोंगो और मेटाक्लासेस "पूरी तरह से अलग" हैं, वे भ्रामक उत्तर हैं।
Django मॉडल क्लास ऑब्जेक्ट्स का निर्माण (जो उस ऑब्जेक्ट को कहने के लिए है जो वर्ग परिभाषा के लिए ही खड़ा है; हाँ, कक्षाएं भी ऑब्जेक्ट हैं) वास्तव में एक मेटाक्लास द्वारा नियंत्रित होते हैं ModelBase
, जिसे आप उस कोड को यहां देख सकते हैं:
https://github.com/django/django/blob/master/django/db/models/base.py#L61
और जो कुछ भी ModelBase
होता है , उनमें से _meta
प्रत्येक Django मॉडल पर विशेषता तैयार करना है जिसमें सत्यापन मशीनरी, फ़ील्ड विवरण, तर्क को सहेजना और आगे शामिल हैं। इस ऑपरेशन के दौरान, सामान जो मॉडल के आंतरिक में निर्दिष्ट हैMeta
वर्ग उस प्रक्रिया के भीतर पढ़ा और उपयोग किया जाता है।
तो, हाँ, एक अर्थ में Meta
और मेटाक्लेसेस अलग-अलग 'चीजें' हैं, जो Django मॉडल निर्माण के यांत्रिकी के भीतर वे संबंधित हैं; यह समझने के लिए कि वे एक साथ कैसे काम करते हैं, आपकी अंतर्दृष्टि को एक साथ दोनों में गहरा कर देगा।
यह बेहतर तरीके से समझने के लिए जानकारी का एक सहायक स्रोत हो सकता है कि कैसे Django मॉडल मेटाक्लासेस को रोजगार देते हैं।
https://code.djangoproject.com/wiki/DevModelCreation
और यह तब भी मदद कर सकता है जब आप बेहतर ढंग से समझना चाहते हैं कि सामान्य रूप से ऑब्जेक्ट कैसे काम करते हैं।
https://docs.python.org/3/reference/datamodel.html