Class-Based DetailView Basics

A basic DetailView wired with slug or pk URL.


# models.py

from django.db import models

class Article(models.Model):
    slug = models.SlugField(unique=True)
    title = models.CharField(max_length=120)
  

# admin.py

from django.contrib import admin
from .models import Article

@admin.register(Article)
class ArticleAdmin(admin.ModelAdmin):
    list_display = ("slug","title")
  

# views.py
from django.views.generic import DetailView
from .models import Article
class ArticleDetail(DetailView):
    model = Article
    template_name = "articles/detail.html"
    slug_field = "slug"
    slug_url_kwarg = "slug"

# urls.py
path("articles//", ArticleDetail.as_view(), name="article-detail")

# templates/articles/detail.html
<h1>{{ object.title }}</h1>
  
Explanation:
  • Use slug_field/slug_url_kwarg for slug-based routing.
  • Template gets object (or article if you set context_object_name).
  • Category Views (FBV & CBV)
  • Total Views 836
  • Last Modified 19 December, 2025
  • Tags #cbv #detailview #generic #views
Never miss a story on Django.wiki

Subscribe for fresh tutorials, snippets, and updates.

By subscribing you agree to our Privacy Policy.