W dzisiejszym wpisie weźmiemy na tapetę kolejną klasę bazową (Django Base View), którą dostarczają nam twórcy Django: TemplateView.

Klasa TemplateView służy do wyświetlania nam statycznych widoków html. By to zrobić musimy do zmiennej template_name przekazać ścieżkę z naszym szablonem / plikiem html i to w sumie tyle.

Przykładowy widok:

from django.views.generic.base import TemplateView


class HomePageView(TemplateView):

    template_name = "index.html"

I klasycznie przekazanie widoku do funkcji path by mieć to wszystko pod jakimś URL oczywiście:

from django.urls import path

from myapp.views import HomePageView

urlpatterns = [
    path('/url', HomePageView.as_view(), name='home'),
]

Jedną z ważniejszych i fajniejszych rzeczy jakie możemy zastosować w TemplateView to dopisanie metody get_context_data, w której możemy np. pobrać jakieś rekordy z bazy danych i przekazać ją do słownika.

Przykład:

from django.views.generic.base import TemplateView

from articles.models import Article

class HomePageView(TemplateView):

    template_name = "home.html"

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['article'] = Article.objects.all()
        return context