#django #visual-studio-code #django-templates
#django #visual-studio-code #django-templates
Вопрос:
Следуя руководству по Django вhttps://code.visualstudio.com/docs/python/tutorial-django но получил ошибку TemplateDoesNotExist в / hello / vscode.
Ошибка заключается в
hello/hello_there.html
Request Method: GET
Request URL: http://127.0.0.1:8000/hello/vscode
Django Version: 2.2
Exception Type: TemplateDoesNotExist
Exception Value:
hello/hello_there.html
Exception Location: C:Usersv770704Documentshello_djangoenvlibsite-packagesdjangotemplateloader.py in get_template, line 19
Python Executable: C:Usersv770704Documentshello_djangoenvScriptspython.exe
Python Version: 3.7.3
Python Path:
['C:\Users\v770704\Documents\hello_django',
'c:\Users\v770704\.vscode\extensions\ms-python.python-2019.3.6215\pythonFiles',
'C:\Users\v770704\AppData\Local\Programs\Python\Python37-32\python37.zip',
'C:\Users\v770704\AppData\Local\Programs\Python\Python37-32\DLLs',
'C:\Users\v770704\AppData\Local\Programs\Python\Python37-32\lib',
'C:\Users\v770704\AppData\Local\Programs\Python\Python37-32',
'C:\Users\v770704\Documents\hello_django\env',
'C:\Users\v770704\Documents\hello_django\env\lib\site-packages']
Это проблема с путем, потому что путь к hello/templates/hello/hello_there.html не найден, но этот путь и файл существуют.
Настройки.py имеет пустое значение DIRS, которое, как мне сказали, следует использовать для каталогов в руководстве.
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True,
'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',
],
},
},
]
Посмертный загрузчик шаблонов говорит:
Django tried loading these templates, in this order:
Using engine django:
django.template.loaders.app_directories.Loader: C:Usersv770704Documentshello_djangoenvlibsite-packagesdjangocontribadmintemplateshellohello_there.html (Source does not exist)
django.template.loaders.app_directories.Loader: C:Usersv770704Documentshello_djangoenvlibsite-packagesdjangocontribauthtemplateshellohello_there.html (Source does not exist)
Если я скопирую папку hello / templates / hello по пути, в котором она находится,
C:Usersv770704Documentshello_djangoenvlibsite-packagesdjangocontribadmintemplates,
веб-страница работает корректно, поэтому, похоже, это всего лишь проблема с конфигурацией пути.
Я попробовал это из другого сообщения, но получаю ту же ошибку:
'DIRS': [os.path.join(BASE_DIR, "templates")],
Даже ввод полного буквального пути к каталогу не работает.
Заранее спасибо за любую помощь.
Комментарии:
1. Вы добавили ‘hello’ в
INSTALLED_APPS
?2. Да, я добавил ‘hello’ в соответствии с руководством.
3.Это невозможно. Либо ‘hello’ не добавлен в
INSTALLED_APPS
, либо у вас нет каталога templates внутри вашего приложения hello. Я могу сказать это из того факта, что он просматривался только в каталогахauth
и вadmin
шаблонах. Убедитесь, что у вас есть следующая структура: путь /к / проекту / управление.py и на том же уровне: путь/к/project/hello/templates/hello/<any_template>.html (ваше приложение hello), а также на том же уровне path/to/project/hello_django/settings.py (каталог проекта django)4. Все файлы находятся в правильных местах, но вы помогли мне понять, что я добавил «hello» в settings.py в веб-проекте, а не в settings.py файл уровня проекта. Проблема решена.
5. @dirkgroten Извините, я не вижу флажка, чтобы нажать, чтобы принять ваш ответ, и я вошел в систему.