DjangoでViewの共通化を行う方法【TemplateView】

TemplateViewというもので、BaseViewというものを作って、そこで、
サイドバーとかの値を取得して、
BaseViewを継承する感じで共通化できます。

views.py
class BaseView(TemplateView):
    def get_context_data(self, **kwargs):
        return {'site_title', 'サイト名'}

class Index(BaseView):
    template_name = 'index.html'
    def get_context_data(self, **kwargs):

        context = super().get_context_data(**kwargs)
        context['index': 'index']
        return context

class Add(BaseView):
    template_name = 'add.html'

    def get_context_data(self, **kwargs):

        context = super().get_context_data(**kwargs)
        context['add': 'add']
        return context
urls.py
urlpatterns = [
    path('', Index.as_view(), name='index'),
    path('add/', Add.as_view()),
]

https://docs.djangoproject.com/ja/4.1/ref/class-based-views/base/

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です