Ошибка 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
   ...

Если это решит вашу проблему, пожалуйста, не забудьте принять это как правильный ответ.

Вернуться на верх