模板没有看过django中的app level模板目录?

时间:2014-04-07 21:13:23

标签: django django-templates django-urls django-settings

我收到此错误:

TemplateDoesNotExist at /link/

link_app/link_list.html
Request Method: GET
Request URL:    http://127.0.0.1:8000/link/
Django Version: 1.6
Exception Type: TemplateDoesNotExist
Exception Value:    
link_app/link_list.html

在我的link_app内,我有一个templates文件夹,我放置了link_list.html

我还在setting.py

中加入了以下内容
TEMPLATE_LOADERS = (
   'django.template.loaders.filesystem.Loader',
    'django.template.loaders.app_directories.Loader',
#     'django.template.loaders.eggs.Loader',
)

我还有一个templates文件夹,对我来说是项目(而不是app)的常用文件夹

TEMPLATE_DIRS=(os.path.join(BASE_DIR, 'templates'),)

中的

settings.py

编辑: 从错误中,它似乎在寻找list_html link_app/link_list.html

但必须看link_app/templates/link_list.html

项目-结构:

LinkDjangoProject
     link_project
     link_app
          templates
             link_list.html
     templates
     manage.py

1 个答案:

答案 0 :(得分:1)

标准项目结构(部分)是这样的:

projectname
  |
  |-projectname  <-- settings.py, etc.
  |
  |-someapp
    |
    |-templates
      |
      |-someapp  <-- templates that are referenced with "someapp/a_template.html" go inside this directory
      |
      ...

我怀疑您错过了someapp目录中的projectname/someapp/templates目录。


此结构允许在另一个应用中覆盖一个应用的模板,前提是覆盖的应用位于INSTALED_APPS

settings.py列表中的原始应用之前

类似的目录结构也与静态和/或媒体文件一起使用。