Django-Vorlage existiert nicht @

Sep 21 2020

Ich verwende Python 3.7.2 und Django 2.1 und jedes Mal, wenn ich versuche, die Home-URL zu laden, wird der folgende Fehler angezeigt.

TemplateDoesNotExist at /

Ghostwriter / post_list.html

Anforderungsmethode: GET Anforderungs-URL: http: // localhost: 8080 / Django Version: 2.1 Ausnahmetyp: TemplateDoesNotExist Ausnahmewert:

Ghostwriter / post_list.html

Ausnahmeort: C: \ Users \ User.virtualenvs \ Ghostwriter-HT06mH6q \ lib \ Site-Pakete \ django \ template \ loader.py in select_template, Zeile 47 Python Ausführbar: C: \ Users \ User.virtualenvs \ Ghostwriter-HT06mH6q \ Skripte \ python.exe

Macht keinen Sinn, da es wirklich keine post_list.html gibt und sie nicht in meiner App-Ebene urls.py oder meinen views.py enthalten ist. Warum passiert das?

urls.py:

aus django.urls importieren Pfad aus .views importieren PostListView

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

views.py:

aus django.shortcuts importieren rendern aus django.views.generic import ListView

aus .models importieren Post

Klasse 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': True,

Antworten

3 MaranSowthri Sep 21 2020 at 08:54

Wenn Sie CBV (Class Based Views) verwenden, sucht django standardmäßig nach Vorlagen mit einem bestimmten Muster. In Ihrem Fall wird, da Sie die Listenansicht verwenden, nach YOURMODELNAME_list.html (YOURMODELNAME in Kleinbuchstaben) gesucht. Wenn Sie die Detailansicht erweitern, wird nach YOURMODELNAME_detail.html gesucht, wenn Sie dieses Verhalten in Ihrer CBV überschreiben möchten Versuche dies,

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

Als Referenz die offizielle Dokumentation von Django