ฉันเพิ่งอัพเกรด 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? หรือคำสั่งใดก็ตามที่คุณต้องการ