Le modèle Django n'existe pas @
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
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