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.