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