Django TemplateView在错误的地方搜索

时间:2016-01-02 20:10:58

标签: python django django-urls urlconf

我的Django结构是:

$seconds = $data[11];
$convertdate = date("y/m/d", $seconds);

在主要网址模块testing contacts __init__.py templates contacts index.html (additional modules) testing __init__.py templates testing test.html urls.py (additional modules) 内部,我有一个urlconf,如下所示:

testing.urls

问题是,它一直在url(r'^testing/$', TemplateView.as_view(template_name='testing/test.html')) 查找contacts.templates.contacts文件。使用现有的urlcon,调试页面会显示以下内容:

模板加载器postmortem

test.html

它始终默认为.......................... ^^^^^^^^^^ Django tried loading these templates, in this order: Using loader django.template.loaders.filesystem.Loader: Using loader django.template.loaders.app_directories.Loader: /Library/Python/2.7/site-packages/django/contrib/admin/templates/testing/test.html (File does not exist) /Library/Python/2.7/site-packages/django/contrib/auth/templates/testing/test.html (File does not exist) /Users/*/Developer/django/testing/contacts/templates/testing/test.html (File does not exist) 文件夹由于某些原因。是否有一些可以控制它的TemplateView或contacts的其他参数?任何帮助表示赞赏!

更新 - 内部template_name

settings.py

2 个答案:

答案 0 :(得分:4)

Django目前没有搜索testing/testing目录。最简单的解决方法是将其添加到DIRS设置:

'DIRS': [os.path.join(BASE_DIR, 'testing', 'templates')],

另一种选择是将testing添加到您的INSTALLED_APPS设置中。然后Django会找到你的模板,因为你有APP_DIRS=True。但是我不建议这样做,因为在你的情况下testing/testing是包含settings.py和root url config的特殊目录。

答案 1 :(得分:3)

通过指定"APP_DIRS": True,您告诉django在每个安装的应用程序中搜索模板文件。在settings.py中查看您的所有应用是否都包含在INSTALLED_APPS中。如果是,您可以尝试强制django在您的应用中查找模板。

TEMPLATES = [
    {
        'DIRS': [os.path.join(BASE_DIR,  'testing', 'templates')],
        ....
    },
]