-
Class that creates View functions
-
There are differences & advantages compared to
function-based-view!-
HTTP methods like GET, POST requests can be expressed as individual methods rather than conditional branching
HTTP methods have 1:1 correspondence with class methods, so readability is good
-
-
Excellent extensibility
- Can maximize extensibility by utilizing
Mixinmodules- Mixin: Module for adding additional functionality or information to classes
- Can maximize extensibility by utilizing
-
Can maintain code intuitiveness even with complex logic
ex)
def index(request):
articles = Article.objects.all()
return render(request, 'articles/index.html', {'articles': articles})ex)
views.py
from django.views.generic import ListView, DetailView
class ArticleListView(ListView):
model = Article
# template_name = 'articles/model_name_list.html' -> Automatically finds this way
# context_object_name = 'object_list'
class ArticleDetailView(DetailView):
model = Articleurls.py
from django.contrib import admin
from django.urls import path
from articles import views
urlpatterns = [
path('admin/', admin.site.urls),
path('articles/', views.ArticleListView.as_view()),
path('articles/<int:pk>',views.ArticleDetailView.as_view()),
]+
https://django-rest-auth.readthedocs.io/en/latest/installation.html