我在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文件,该应用就可以运行。
答案 0 :(得分:1)
Django允许您相对于DIRS
中列出的目录的根目录引用模板(在这种情况下只有templates
);所以你只需要通过rango/about.html
。