Ошибка Django и Tailwind 'TemplateDoesNotExist'
Я следую этому тутоиралу: https://www.ordinarycoders.com/blog/article/django-tailwind
У меня есть проект django под названием 'project' с двумя приложениями в нем 'app' и 'main'. Я пытаюсь загрузить 'main > template > main > home.html'. но получаю эту ошибку:
Internal Server Error: /
Traceback (most recent call last):
File "C:\Users\Kaij\Documents\djangoTests\djangoTailwind2\env\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
response = get_response(request)
File "C:\Users\Kaij\Documents\djangoTests\djangoTailwind2\env\lib\site-packages\django\core\handlers\base.py", line 181, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\Kaij\Documents\djangoTests\djangoTailwind2\env\project\main\views.py", line 5, in homepage
return render(request = request, template_name="main/home.html")
File "C:\Users\Kaij\Documents\djangoTests\djangoTailwind2\env\lib\site-packages\django\shortcuts.py", line 19, in render
content = loader.render_to_string(template_name, context, request, using=using)
File "C:\Users\Kaij\Documents\djangoTests\djangoTailwind2\env\lib\site-packages\django\template\loader.py", line 61, in render_to_string
template = get_template(template_name, using=using)
File "C:\Users\Kaij\Documents\djangoTests\djangoTailwind2\env\lib\site-packages\django\template\loader.py", line 19, in get_template
raise TemplateDoesNotExist(template_name, chain=chain)
django.template.exceptions.TemplateDoesNotExist: main/home.html
[17/Nov/2021 11:49:03] "GET / HTTP/1.1" 500 80436
Следуя руководству, у меня в файле "settings.py" есть:
В моем проекте>urls.py у меня есть:
from django.contrib import admin
from django.urls import path, include #add include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include ('main.urls')), #add this
]
В моем main>urls.py:
from django.urls import path
from . import views
app_name = "main"
urlpatterns = [
path("", views.homepage, name="homepage"),
]
В main>views.py у меня есть
from django.shortcuts import render
# Create your views here.
def homepage(request):
return render(request = request, template_name="main/home.html")
Я пытался добавить каталог шаблонов main в DIRS в settings.py, следуя этой другой ссылке Stack: Django: TemplateDoesNotExist в / home.html в моем проекте
Но я не смог открыть html-файл.
Любая помощь очень ценится. Спасибо
Эй измените эту строку в вашем settings.py
с этой
'DIRS': ['C:\Users\Kaij\Documents\djangoTests\djangoTailwind2\env\project\main\template'],
на это
[BASE_DIR/ 'templates']
и затем в каталоге main
создайте папку templates
и в ней создайте еще одну папку под названием main, в которую войдет ваша папка home.html
. так что что-то вроде этого
project -> main -> templates -> home.html
и в вашей папке под названием main создайте urls.py
и добавьте эти строки
from django.urls import path
from .views import some_view_name
urlpatterns = [
path('', some_view_name, name='home-view')
]
then in main -> views.py добавьте эту строку в
from django.shortcuts import render
def some_view_name(request):
return render(request, "main/home.html")
это поможет вам решить проблему.
структура ваших каталогов должна выглядеть примерно так
project
-> project
urls.py
...
-> main
->templates
-> main
-> home.html
manage.py
...
Если это решит вашу проблему, пожалуйста, не забудьте принять это как правильный ответ.