Я нещодавно оновив Django з версії 1.3 до версії 1.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? Або будь-яку команду, яку ви хочете