Как изменить каталоги по умолчанию в проекте
Итак, я разрабатываю это приложение на python, и когда я пытаюсь показать некоторые html в браузере, я получаю эту ошибку:
TemplateDoesNotExist at /xPharma/hello/
hello.html
Request Method: GET
Request URL: http://127.0.0.1:8000/xPharma/hello/
Django Version: 4.2.11
Exception Type: TemplateDoesNotExist
Exception Value:
hello.html
Exception Location: C:\Users\Marco\.virtualenvs\XpharmBackend-9gJJ8jLG\lib\site-packages\django\template\loader.py, line 19, in get_template
Raised during: xPharma.views.say_hello
Python Executable: C: \Users\Marco\.virtualenvs\XpharmBackend-9gJJ8jLG\Scripts\python.exe
Python Version: 3.9.7
Python Path:
['C:\\Users\\Marco\\Desktop\\Desktop\\progetto X pharme\\XpharmBackend',
'C:\\Python39\\python39.zip',
'C:\\Python39\\DLLs',
'C:\\Python39\\lib',
'C:\\Python39',
'C:\\Users\\Marco\\.virtualenvs\\XpharmBackend-9gJJ8jLG',
'C:\\Users\\Marco\\.virtualenvs\\XpharmBackend-9gJJ8jLG\\lib\\site-packages']
Server time: Mon, 01 Apr 2024 15:44:22 +0000
но я обнаружил, что получаю эту ошибку, потому что python ищет файл в неправильной директории...
Using engine django:
django.template.loaders.app_directories.Loader: C:\Users\Marco\.virtualenvs\XpharmBackend-9gJJ8jLG\lib\site-packages\django\contrib\admin\templates\hello.html (Source does not exist)
django.template.loaders.app_directories.Loader: C:\Users\Marco\.virtualenvs\XpharmBackend-9gJJ8jLG\lib\site-packages\django\contrib\auth\templates\hello.html (Source does not exist)
Есть ли способ изменить эти каталоги и перенаправить python туда, где я сохранил свой файл?
EDIT: Как и просили, вот мой views.py (xPharma.views.say_hello):
from django.shortcuts import render
from django.http import HttpResponse
def say_hello(request):
return render(request,'hello.html')
Проблема :-
Ваш шаблон расположен не там, где нужно.
Ответ:
1)
Создайте папку с именем templates
в hello app, затем переместите hello.html
в эту папку.
Сохраните путь к шаблону в файле views.py как есть.
Если выше не сработало, сделайте ниже.
2)
Переместите hello.html
в /xPharma/hello/
и посмотрите, работает ли это. Если работает, значит, вы неправильно настроили settings.py.
Тогда лучше выложить settings.py в вопросе.
Вот как работает django.
Он ищет шаблоны в ваших app_name/templates
папках.
Как изменить каталоги по умолчанию в проекте?
Это можно сделать в файле settings.py. Там есть настройка под названием templates.
За дополнительной информацией обращайтесь к ссылкам ниже.