What is Django Admin?

Django Admin is a built-in administrative interface that automatically generates a web-based UI for managing your models. It's perfect for content management and data administration.

Creating a Superuser

Create an admin user:

python manage.py createsuperuser

# Follow prompts:
# Username: admin
# Email: [email protected]
# Password: (enter password)

Registering Models

Register models in admin.py:

from django.contrib import admin
from .models import Book, Author

# Simple registration
admin.site.register(Book)
admin.site.register(Author)

Customizing Admin

Customize admin interface:

@admin.register(Book)
class BookAdmin(admin.ModelAdmin):
    list_display = ['title', 'author', 'published_date', 'price']
    list_filter = ['published_date', 'author']
    search_fields = ['title', 'author__name']
    list_editable = ['price']
    ordering = ['-published_date']

Admin Options

Common customization options:

class BookAdmin(admin.ModelAdmin):
    # Display columns
    list_display = ['title', 'author', 'price']
    
    # Filters in sidebar
    list_filter = ['author', 'published_date']
    
    # Search functionality
    search_fields = ['title', 'description']
    
    # Editable in list view
    list_editable = ['price']
    
    # Items per page
    list_per_page = 25
    
    # Ordering
    ordering = ['-published_date']
    
    # Fieldsets for detail view
    fieldsets = [
        ('Basic Info', {'fields': ['title', 'author']}),
        ('Details', {'fields': ['price', 'published_date']}),
    ]

Inline Editing

Edit related objects inline:

class BookInline(admin.TabularInline):
    model = Book
    extra = 1

@admin.register(Author)
class AuthorAdmin(admin.ModelAdmin):
    inlines = [BookInline]

Accessing Admin

Access admin panel:

# URL: http://127.0.0.1:8000/admin/
# Login with superuser credentials

Best Practices

  • Customize list_display: Show important fields
  • Add filters: Make data easier to find
  • Use search_fields: Enable quick searching
  • Secure admin: Change default admin URL in production

Next Steps

Learn about Django Models to register in admin, or explore authentication for user management.