我最近将Django从v1.3.1升级到v1.4
在我以前的settings.py中,我有
模板目录=(
join(os.path.dirname(\uuuu文件,\uuuu),'templates')。replace('\\','/'),
#在此处放置字符串,如“/home/html/django_templates”或“C:/www/django/templates”。
#始终使用前斜杠,即使在Windows上也是如此。
#不要忘记使用绝对路径,而不是相对路径。
)
这将指向/Users/hobbes3/Sites/mysite/templates,但由于Django v1.4将项目文件夹移动到与应用程序文件夹相同的级别,因此mysettings.py文件现在位于/Users/hobbes3/Sites/mysite/mysite/中,而不是/Users/hobbes3/Sites/mysite/
所以实际上我的问题有两个:
- 如何使用
os.path查看\uuuu文件\uuuu上一级的目录。换句话说,我希望/Users/hobbes3/Sites/mysite/mysite/settings.py使用相对路径查找/Users/hobbes3/Sites/mysite/templates - 我应该在项目
/User/hobbes3/Sites/mysite级别或/User/hobbes3/Sites/mysite级别保留模板文件夹(其中包含跨应用程序模板,如管理、注册
os.path.abspath(os.path.join(os.path.dirname(__文件,“…”,“模板”))
至于模板文件夹应该放在哪里,我不知道,因为Django1.4刚刚发布,我还没有看过。您可能应该问另一个关于SE的问题来解决这个问题
您还可以使用normpath清理路径,而不是abspath。然而,在这种情况下,Django期望的是绝对路径而不是相对路径
要实现跨平台兼容性,请使用os.pardir而不是“…”