O template Django não existe @

Sep 21 2020

Estou usando o Python 3.7.2 e o Django 2.1 e sempre que tento carregar o URL inicial, recebo o seguinte erro.

TemplateDoesNotExist em /

ghostwriters / post_list.html

Método de solicitação: URL de solicitação GET: http: // localhost: 8080 / Django Versão: 2.1 Tipo de exceção: TemplateDoesNotExist Valor de exceção:

ghostwriters / post_list.html

Local da exceção: C: \ Users \ User.virtualenvs \ ghostwriter-HT06mH6q \ lib \ site-packages \ django \ template \ loader.py em select_template, linha 47 Executável Python: C: \ Users \ User.virtualenvs \ ghostwriter-HT06mH6q \ Scripts \ python.exe

Não faz sentido porque realmente não há post_list.html e não está no meu URL de nível de aplicativo urls.py ou em minhas views.py, então por que isso está acontecendo?

urls.py:

from django.urls import path from .views import PostListView

urlpatterns = [path ('', PostListView.as_view (), name = 'home'),]

views.py:

de django.shortcuts import render render de django.views.generic import ListView

de .models import Post

class PostListView (ListView): model = Post template = 'home.html'

settings.py:

TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join (BASE_DIR, 'templates')], 'APP_DIRS': Verdadeiro,

Respostas

3 MaranSowthri Sep 21 2020 at 08:54

Se você estiver usando qualquer CBV (Class Based Views), por padrão o django irá procurar por um modelo com algum padrão específico. No seu caso, como você está usando a visualização de lista, ele irá procurar SEUMODELNAME_list.html (SEUMODELNAME em minúsculas), se você estiver estendendo a Visualização de detalhes, ele irá procurar SEUMODELNAME_detail.html. Se você quiser substituir este comportamento, dentro de seu CBV tente isso,

class YourCBV(ListView):
   template_name = 'your_new_template.html'

Para sua referência, a documentação oficial do Django