Customize Admin Form Layout
A snippet showing how to customize admin form layout.
# models.py
from django.db import models
STATUS = [
('draft', 'Draft'),
('review', 'In Review'),
('published', 'Published'),
]
class Article(models.Model):
title = models.CharField(max_length=200)
slug = models.SlugField(unique=True)
status = models.CharField(max_length=20, choices=STATUS, default='draft')
summary = models.CharField(max_length=280, blank=True)
content = models.TextField()
featured = models.BooleanField(default=False)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
def __str__(self):
return self.title
# admin.py
from django.contrib import admin
from .models import Article
@admin.register(Article)
class ArticleAdmin(admin.ModelAdmin):
# Control field order for the add/change form (when not using fieldsets)
# fields = ('title', 'slug', 'status', 'summary', 'content', 'featured')
# Group fields into sections and add CSS classes (e.g., collapse)
fieldsets = (
('Main Info', {
'fields': ('title', 'slug', 'status')
}),
('Content', {
'fields': ('summary', 'content'),
'description': 'Write a short summary and the full article body.'
}),
('Publishing', {
'fields': ('featured',),
'classes': ('collapse',), # collapsible section
}),
('Timestamps', {
'fields': ('created_at', 'updated_at'),
}),
)
# Read-only and excluded fields
readonly_fields = ('created_at', 'updated_at')
# exclude = ('summary',) # alternatively hide fields entirely
# Form behavior
save_on_top = True
list_display = ('title', 'status', 'featured', 'created_at')
list_filter = ('status', 'featured', 'created_at')
search_fields = ('title', 'slug', 'summary')
Explanation:
-
Use
fieldsetsto group fields by section; each tuple is(heading, {'fields': (...)}). -
Add
'classes': ('collapse',)for optional sections that start collapsed (e.g., advanced settings). -
Mark system fields as
readonly_fieldsto prevent edits, or useexcludeto hide entirely. -
Prefer
fields(orfieldsets) to control order; combine withsave_on_topfor quick saves.
- Category Admin
- Total Views 1009
- Last Modified 07 October, 2025
- Tags #admin #form #layout #customization
Previous snippet
Custom Actions in Admin
Next snippet