我最近将 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
使用相对路径。 - Should I be keeping the
template
folder (which has cross-app templates, likeadmin
,registration
, etc.) at the project/User/hobbes3/Sites/mysite
水平或/User/hobbes3/Sites/mysite/mysite
?
原文由 hobbes3 发布,翻译遵循 CC BY-SA 4.0 许可协议
至于templates文件夹应该放在哪里,我不知道,因为Django 1.4刚出来,我还没有看。您可能应该在 SE 上问另一个问题来解决该问题。
您还可以使用
normpath
来清理路径,而不是abspath
。但是,在这种情况下,Django 需要绝对路径而不是相对路径。对于跨平台兼容性,请使用
os.pardir
而不是'..'
。