मैं हाल ही में Django को v1.3.1 से v1.4 में अपग्रेड करता हूं।
मेरे पुराने में settings.pyमेरे पास है
TEMPLATE_DIRS = (
os.path.join(os.path.dirname( __file__ ), 'templates').replace('\\', '/'),
# Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
)
यह इंगित करेगा /Users/hobbes3/Sites/mysite/templates, लेकिन क्योंकि Django v1.4 ऐप फ़ोल्डर के रूप में प्रोजेक्ट फ़ोल्डर को उसी स्तर पर ले गया , मेरी settings.pyफ़ाइल अब /Users/hobbes3/Sites/mysite/mysite/इसके बजाय है /Users/hobbes3/Sites/mysite/।
तो वास्तव में मेरा सवाल अब दुगना है:
- मैं
os.pathएक निर्देशिका को एक स्तर से ऊपर देखने के लिए कैसे उपयोग कर सकता हूं__file__। दूसरे शब्दों में, मैं चाहता हूँ/Users/hobbes3/Sites/mysite/mysite/settings.pyलगता है/Users/hobbes3/Sites/mysite/templatesसंबंधित पथ का उपयोग कर। - मैं रखने होना चाहिए
templateफ़ोल्डर (जो पार एप्लिकेशन टेम्पलेट्स, की तरह हैadmin,registrationपरियोजना में, आदि)/User/hobbes3/Sites/mysiteके स्तर या कम से/User/hobbes3/Sites/mysite/mysite?
settings.pyकई सर्वरों में समान उपयोग करता हूं । एकमात्र अंतर डेटाबेस क्रेडेंशियल्स हो सकता है। मैं os.pathदस्तावेज़ीकरण पढ़ रहा था, लेकिन मुझे एक आदेश नहीं मिला कि चलो तुम एक निर्देशिका जाओ। की तरह cd ..।
os.path.join( os.path.dirname( __file__ ), '..' ) .. मतलब कर सकते हैं , न कि केवल जब पारित किया जाता है । cd
os.path.join( os.path.dirname ( __file__), os.path.pardir)
osलिए उपयोग करतेcdहैं../mysite? या जो कुछ भी आप चाहते हैं