Django
Beginner
1 min read
Registering Models and Basic Admin Configuration
Example
# blog/admin.py — basic and customised admin registration
from django.contrib import admin
from django.utils.html import format_html
from .models import Post, Category, Tag
@admin.register(Category)
class CategoryAdmin(admin.ModelAdmin):
list_display = ['name', 'slug']
prepopulated_fields = {'slug': ('name',)}
search_fields = ['name']
@admin.register(Tag)
class TagAdmin(admin.ModelAdmin):
list_display = ['name', 'slug']
prepopulated_fields = {'slug': ('name',)}
@admin.register(Post)
class PostAdmin(admin.ModelAdmin):
list_display = ['title', 'author', 'category', 'status', 'published_at', 'cover_preview']
list_filter = ['status', 'created_at', 'category']
search_fields = ['title', 'body', 'author__username']
prepopulated_fields = {'slug': ('title',)}
raw_id_fields = ['author']
date_hierarchy = 'published_at'
ordering = ['-published_at']
filter_horizontal = ['tags']
@admin.display(description='Cover')
def cover_preview(self, obj):
if obj.cover_img:
return format_html('<img src="{}" height="40">', obj.cover_img.url)
return '-'
Related Resources
Django Reference
Complete tag & property list
Django How-To Guides
Step-by-step practical guides
Django Exercises
Practice what you've learned
More in Django