😁

TemplateResponseMixin requires either a definition of 'template_name'

2022/10/13に公開

対象者

以下のサイトをみてやってみたが改善しない人
https://stackoverflow.com/questions/25468412/django-improperlyconfigured-at
https://stackoverflow.com/questions/25468412/django-improperlyconfigured-at
https://teratail.com/questions/34695

結論

app/viewsの
template_nameをtemplates_nameにしていた

つまりスペルミス

エラー内容

ImproperlyConfigured at /

TemplateResponseMixin requires either a definition of 'template_name' or
an implementation of 'get_template_names()'

Request URL: http://127.0.0.1:8000/
Django Version: 3.2
Exception Type: ImproperlyConfigured
Exception Value:
TemplateResponseMixin requires either a definition of 'template_name' or an implementation of 'get_template_names()'

コード(改善済み)

***project/url***

from django.contrib import admin
from django.urls import path,include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('',include('booking.urls')),
]

***app/url***

from django.urls import path
from .import views

app_name = 'booking'

urlpatterns = [
  path('', views.IndexView.as_view(),name='index'),
  path('booking_top/', views.booking_top, name='booking.urls'),
]

app/views

from django.shortcuts import render
from django.views.generic import TemplateView


class IndexView(TemplateView):
  templates_name = 'main/index.html'

class booking_top(TemplateView):
  templates_name = 'main/booking_top.html'

反省点

エラーを今一度読んでみると
views.py に原因があることがわかった。
またエラー内容がtemplate_nameが存在しないと書かれているのにも関わらず
templates_nameであることがわからなかった。
エラーをみてどこを見れば治るのかまでわかるようにしたいと思う。

Discussion