Skip to content

Latest commit

 

History

History
88 lines (54 loc) · 1.68 KB

File metadata and controls

88 lines (54 loc) · 1.68 KB

Class Based View in Django

Docs


Class Based View

  • 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 Mixin modules
      • Mixin: Module for adding additional functionality or information to classes
  • Can maintain code intuitiveness even with complex logic



Function generic view vs class based generic view


Function generic view

ex)

def index(request):
    articles = Article.objects.all()
    return render(request, 'articles/index.html', {'articles': articles})

class based generic view

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 = Article

urls.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()),
]


+

Django REST API Auth

https://django-rest-auth.readthedocs.io/en/latest/installation.html