Back
Syntax
Study
Editor
Mode:
HTML
CSS
JavaScript
PHP
Reset
Run »
HTML / CSS / JS
# blog/admin.py — actions, inlines, and fieldsets from django.contrib import admin from django.utils import timezone from .models import Post, Comment # --- Inline for comments --- class CommentInline(admin.TabularInline): model = Comment extra = 0 readonly_fields = ['author', 'body', 'created_at'] can_delete = True # --- Custom admin action --- @admin.action(description='Mark selected posts as published') def make_published(modeladmin, request, queryset): updated = queryset.update(status=Post.STATUS_PUBLISHED, published_at=timezone.now()) modeladmin.message_user(request, f'{updated} post(s) marked as published.') @admin.register(Post) class PostAdmin(admin.ModelAdmin): actions = [make_published] inlines = [CommentInline] fieldsets = ( (None, { 'fields': ('title', 'slug', 'author', 'category', 'tags'), }), ('Content', { 'fields': ('body', 'cover_img'), }), ('Publishing', { 'classes': ('collapse',), 'fields': ('status', 'published_at'), }), ) readonly_fields = ['created_at', 'updated_at']
Result
Open