Skip to content
Django

Class-Based Views

Use generic class-based views for common CRUD flows.

By EZ4Code Team
viewscbvcrud

Code

from django.views.generic import ListView, DetailView, CreateView
from django.urls import reverse_lazy
from .models import Article
from .forms import ArticleForm

class ArticleListView(ListView):
    model = Article
    template_name = "articles/list.html"
    context_object_name = "articles"
    paginate_by = 10

class ArticleDetailView(DetailView):
    model = Article
    template_name = "articles/detail.html"

class ArticleCreateView(CreateView):
    model = Article
    form_class = ArticleForm
    success_url = reverse_lazy("article-list")

Explanation

Generic class-based views handle repetitive CRUD logic with minimal boilerplate. ListView paginates a queryset, DetailView loads a single object by pk, and CreateView validates a form and persists on success. Template names and context variable names can be overridden as class attributes.

More Django Snippets