Django中的TemplateDoesNotExist错误?

时间:2016-05-31 10:22:38

标签: django django-templates

我在StackOverflow上搜索了很多类似的问题,但找不到这个问题的答案。我在tango with django跟踪指南。 我的文件目录如下所示: -

|-- db.sqlite3
|-- manage.py
|-- media
|   `-- rango.jpg
|-- rango
|   |-- admin.py
|   |-- admin.pyc
|   |-- apps.py
|   |-- __init__.py
|   |-- __init__.pyc
|   |-- migrations
|   |   |-- __init__.py
|   |   `-- __init__.pyc
|   |-- models.py
|   |-- models.pyc
|   |-- tests.py
|   |-- urls.py
|   |-- urls.pyc
|   |-- views.py
|   `-- views.pyc
|-- rango.db
|-- static
|   |-- rango1.jpg
|   `-- rango.jpg
|-- tango_with_django_project
|   |-- __init__.py
|   |-- __init__.pyc
|   |-- settings.py
|   |-- settings.pyc
|   |-- urls.py
|   |-- urls.pyc
|   |-- wsgi.py
|   `-- wsgi.pyc
`-- templates
    `-- rango
        |-- about.html
        |-- index.html
        `-- order.html

在启动服务器时,我收到TemplateDoesNotExist错误,如下所示: -

Django tried loading these templates, in this order:

Using engine :
django.template.loaders.filesystem.Loader: /home/kalpesh/tango_with_django_project/templates/templates/rango/about.html (Source does not exist)

对我来说,奇怪的是路径名中显示的templates/templates。这是我的settings.py文件: -

#New stuff
SETTINGS_DIR = os.path.dirname(__file__)
PROJECT_PATH = os.path.join(SETTINGS_DIR, os.pardir)
PROJECT_PATH = os.path.abspath(PROJECT_PATH)
DATABASE_PATH = os.path.join(PROJECT_PATH, 'rango.db')

#Template new stuff
TEMPLATE_PATH = os.path.join(PROJECT_PATH, "templates")
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS' : [TEMPLATE_PATH],
        'APP_DIRS': False,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

出了什么问题?如果我在 ./templates/templates/rango中制作相同的HTML文件,该应用就可以运行。

1 个答案:

答案 0 :(得分:1)

Django允许您相对于DIRS中列出的目录的根目录引用模板(在这种情况下只有templates);所以你只需要通过rango/about.html