Django没有在正确的目录中查找模板

时间:2014-05-27 19:31:32

标签: django templates

我有一个现有的Django项目,工作正常。我根据原来的一个(不是复制,只使用结构)制作了一个新的,我遇到了新的问题。

在新项目的应用程序中,我有一个文件夹模板,并在另一个带有应用程序名称的文件夹中。但如果我将模板引用为“app / index.html”,则无法加载模板。在视图中。

我的TEMPLATE_DIRS设置为os.path.join(BASE_DIR, 'templates'),就像第一个项目一样。目录结构是相同的。但是当我收到调试消息时,我发现它正在尝试从ROOT/templates/app/index.html而不是ROOT/app/templates/app/index.html加载模板。

我最终发现工作的原因是,仅TEMPLATE_DIRSBASE_DIR,然后将模板的完整路径引用为'app/templates/app/index.html'。但这很乏味,显然不正确。

在我使用TEMPLATE_LOADERS的两个应用中,它都是默认值。我还能检查什么?

我在Python 2.7上使用Django 1.6.1。

2 个答案:

答案 0 :(得分:1)

查看您的TEMPLATE_DIRS,我希望它看到/full/path/to/base_dir/templates下,而不是/full/path/to/base_dir/app/templates

如果后者是您想要的,请使用

os.path.join(BASE_DIR', 'app', 'templates')

答案 1 :(得分:0)

在我们的应用程序中将模板文件夹命名为错误时,通常会发生这种错误。检查它是否正确命名为“templates” django.template.loaders.app_directories.Loader 在我们的app文件夹中查找名为 templates 的文件夹

true

另外,请确保您已在INSTALLED_APPS中正确定义了应用名称'app_name.apps.App_nameConfig'

app/
     templates/
               app/
                   index.html