La plantilla de Django no existe @

Sep 21 2020

Estoy usando Python 3.7.2 y Django 2.1 y cada vez que intento cargar la URL de inicio aparece el siguiente error.

TemplateDoesNotExist en /

ghostwriters / post_list.html

Método de solicitud: GET URL de solicitud: http: // localhost: 8080 / Django Versión: 2.1 Tipo de excepción: TemplateDoesNotExist Valor de excepción:

ghostwriters / post_list.html

Ubicación de excepción: C: \ Users \ User.virtualenvs \ ghostwriter-HT06mH6q \ lib \ site-packages \ django \ template \ loader.py en select_template, línea 47 Python Executable: C: \ Users \ User.virtualenvs \ ghostwriter-HT06mH6q \ Scripts \ python.exe

No tiene ningún sentido porque realmente no hay post_list.html y no está en el nivel de mi aplicación urls.py o en mi views.py, entonces, ¿por qué sucede esto?

urls.py:

desde django.urls importar ruta desde .views importar PostListView

urlpatterns = [ruta ('', PostListView.as_view (), nombre = 'casa'),]

views.py:

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

desde .models import Post

clase PostListView (ListView): modelo = Plantilla de publicación = 'home.html'

settings.py:

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

Respuestas

3 MaranSowthri Sep 21 2020 at 08:54

Si está utilizando cualquier CBV (Vistas basadas en clases), de forma predeterminada, django buscará una plantilla con algún patrón específico. En su caso, dado que está utilizando la Vista de lista, buscará YOURMODELNAME_list.html (YOURMODELNAME en minúsculas), si está ampliando la Vista de detalles, buscará YOURMODELNAME_detail.html. Si desea anular este comportamiento, dentro de su CBV prueba esto,

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

Para su referencia, documentación oficial de Django