La plantilla de Django no existe @
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
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