मॉडल के बड़े सेट के साथ आपकी सबसे अच्छी शर्त आपके लाभ के लिए django मॉड्यूल का उपयोग करना है, और बस मॉडल नामक फ़ोल्डर बनाएं। अपने पुराने मॉडल.py को इस मॉडल फ़ोल्डर में ले जाएं, और इसे __init__.py
का नाम दें। यह आपको इस मॉडल फ़ोल्डर के अंदर प्रत्येक मॉडल को और अधिक विशिष्ट फ़ाइलों में अलग करने की अनुमति देगा।
आपको केवल प्रत्येक मॉडल को अपने __init__.py
के नामस्थान में आयात करने की आवश्यकता होगी।
yourapp/
models/
__init__.py # This file should import anything from your other files in this directory
basic.py # Just an example name
morespecificmodels.py # Just an example name
managers.py # Might want to separate your manager into this
फिर अपने __init__.py
बस हो सकता है:
तो, उदाहरण के लिए, आप में अलग करने के लिए चाहते हो सकता है
from basic import * # You should replace * with each models name, most likely.
from managers import YourManager # Whatever your manager is called.
यह संरचना है कि मैं का उपयोग करें कि मेरा मॉडल फ़ाइलें प्राप्त है विशाल, हालांकि मैं जितनी बार संभव हो सके अधिक प्लग करने योग्य ऐप्स में चीजों को अलग करने की कोशिश करता हूं - इसलिए यह शायद ही कभी मेरे द्वारा उपयोग किया जाता है।
उम्मीद है कि इससे मदद मिलती है।
फिर मैन्युअल रूप से man.py.py और इसके विपरीत आयात करने की आवश्यकता वाले mod.py के साथ कैसे निपटें? – Jeff
प्रबंधकों को मॉडल आयात करने की आवश्यकता नहीं है - प्रश्न में मॉडल हमेशा प्रबंधक पर 'self.model' के रूप में उपलब्ध होगा। – jacobian
यह बढ़िया है ... जब तक कि आपके प्रबंधक की क्वेरीसेट को किसी अन्य मॉडल का संदर्भ देने की आवश्यकता न हो - तब आप इसे आयात नहीं कर सकते हैं, और इसे models.py में रखना होगा (उदाहरण के लिए यदि आप किसी अन्य मॉडल में मौजूद वस्तुओं को छोड़ रहे हैं)। –