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_kwargfor slug-based routing. -
Template gets
object(orarticleif you setcontext_object_name).
- Category Views (FBV & CBV)
- Total Views 835
- Last Modified 19 December, 2025
- Tags #cbv #detailview #generic #views
Previous snippet
Class-Based ListView Basics
Next snippet