0

我的 Web 应用程序的代码目前在 Dropbox 上,我在工作和家用计算机上工作时只需更改 settings.py 模块中的 TEMLPLATE_DIRS 变量。

今天晚上启动应用程序时遇到了一个问题。我收到 TemplateDoesNotExist 错误,以下是详细信息:

Django tried loading these templates, in this order:
Using loader django.template.loaders.filesystem.Loader:
/Users/me/Dropbox/app/MyApp/Users/me/Dropbox/app/MyApp/templates/App/Page 1/pageone.html (File does not exist)

基本上第一个/Users/me/Dropbox/app/MyApp不应该在那里。

设置.py

TEMPLATE_DIRS = (
    "Users/danielholmes/Dropbox/app/MyApp/templates/",
)

我认为这将是一件愚蠢的事情 - 如果需要更多信息,请告诉我。

非常感谢

4

1 回答 1

1

永远不要硬编码设置文件中的目录路径。让 Python 为您生成绝对路径名。这使您的项目可跨不同环境移植。以下是定义路径的好方法(也可能解决您的问题):

import os, sys

abspath = lambda *p: os.path.abspath(os.path.join(*p))

PROJECT_ROOT = abspath(os.path.dirname(__file__))
sys.path.insert(0, PROJECT_ROOT)

TEMPLATE_DIRS = (
    abspath(PROJECT_ROOT, 'templates'),
)
于 2013-01-23T19:12:26.150 回答