Я недавно обновил Django с версии 1.3.1 до версии 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? Или любую команду, которую вы хотите