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