Le modèle Django n'existe pas @

Sep 21 2020

J'utilise python 3.7.2 et Django 2.1 et chaque fois que j'essaye de charger l'url d'accueil, j'obtiens l'erreur suivante.

TemplateDoesNotExist à /

ghostwriters / post_list.html

Méthode de demande: GET URL de la demande: http: // localhost: 8080 / Django Version: 2.1 Type d'exception: TemplateDoesNotExist Valeur d'exception:

ghostwriters / post_list.html

Emplacement de l'exception: C: \ Users \ User.virtualenvs \ ghostwriter-HT06mH6q \ lib \ site-packages \ django \ template \ loader.py dans select_template, ligne 47 Python Executable: C: \ Users \ User.virtualenvs \ ghostwriter-HT06mH6q \ Scripts \ python.exe

Cela n'a aucun sens car il n'y a vraiment pas de post_list.html et ce n'est pas dans mon niveau d'application urls.py ou mon views.py, alors pourquoi cela se produit-il?

urls.py:

depuis django.urls importer le chemin depuis .views importer PostListView

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

views.py:

depuis django.shortcuts importer le rendu depuis django.views.generic import ListView

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

Réponses

3 MaranSowthri Sep 21 2020 at 08:54

Si vous utilisez un CBV (Class Based Views), par défaut, django cherchera un modèle avec un modèle spécifique. Dans votre cas, puisque vous utilisez la vue de liste, il recherchera YOURMODELNAME_list.html (YOURMODELNAME en minuscules), si vous étendez la vue détaillée, il recherchera YOURMODELNAME_detail.html. essaye ça,

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

Pour votre référence, documentation officielle de Django