Il modello Django non esiste @

Sep 21 2020

Sto usando python 3.7.2 e Django 2.1 e ogni volta che provo a caricare l'URL di casa ottengo il seguente errore.

TemplateDoesNotExist presso /

ghostwriters / post_list.html

Metodo di richiesta: GET URL richiesta: http: // localhost: 8080 / Django Versione: 2.1 Tipo di eccezione: TemplateDoesNotExist Valore eccezione:

ghostwriters / post_list.html

Posizione eccezione: C: \ Users \ User.virtualenvs \ ghostwriter-HT06mH6q \ lib \ site-packages \ django \ template \ loader.py in select_template, riga 47 Eseguibile Python: C: \ Users \ User.virtualenvs \ ghostwriter-HT06mH6q \ Scripts \ python.exe

Non ha alcun senso perché non c'è davvero alcun post_list.html e non è nella mia app urls.py o nel mio views.py, quindi perché sta succedendo?

urls.py:

da django.urls importa il percorso da .views importa PostListView

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

views.py:

da django.shortcuts importa render da django.views.generic import ListView

da .models importa 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': True,

Risposte

3 MaranSowthri Sep 21 2020 at 08:54

Se stai usando CBV (Class Based Views), per impostazione predefinita django cercherà un modello con un modello specifico. Nel tuo caso, poiché stai utilizzando la visualizzazione elenco, cercherà YOURMODELNAME_list.html (YOURMODELNAME in minuscolo), se estendi la visualizzazione dei dettagli, cercherà YOURMODELNAME_detail.html .se desideri sovrascrivere questo comportamento, all'interno del tuo CBV prova questo,

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

Per tuo riferimento, documentazione ufficiale di Django