π NEW: Version 2.0 is here! Built with DaisyUI v5 and Tailwind CSS v4 for blazing-fast performance, enhanced responsiveness, and stunning new designs.
Try it now: https://hypy13-django-daisy.hf.space/en/admin/
Username: demo | Password: demo
RTL Demo: https://hypy13-django-daisy.hf.space/fa/admin/
Full documentation: https://hypy13.github.io/django-daisy-docs/
Version 2.0 brings major improvements in performance, design, and user experience:
- β‘ DaisyUI v5 & Tailwind CSS v4 - Lighter, faster, and more efficient
- π¨ New Themes & Icons - Expanded theme collection with modern iconography
- π± Enhanced Responsiveness - Improved mobile experience with compact table views
- π― Redesigned Change Form - Submit buttons relocated to right sidebar on large screens
- π Recent History Component - Quick access to recent object changes in the sidebar
- ποΈ Improved Delete Confirmation - Cleaner, more intuitive deletion interface
- β Updated Form Controls - Modern DaisyUI v5 checkbox and input styling
- π§ Performance Optimizations - Faster load times and smoother interactions
π Complete Changelog
- Upgraded to DaisyUI v5 and Tailwind CSS v4
- Relocated submit button row to right sidebar on large screens (change form)
- Added recent object history component in right sidebar (change form)
- Improved change list table responsiveness with compact mobile view
- Enhanced delete confirmation page design
- Updated checkbox inputs to DaisyUI v5 styling
- Added new themes to theme selector with updated icons
- Various responsive improvements and UI enhancements
- π Fully Responsive - Seamless experience across mobile, tablet, and desktop
- π RTL Support - Complete right-to-left language support
- π¨ Multi-Theme System - Switch themes effortlessly to match your brand
- π Tabbed Inline Admin - Organize related data with tabbed sections
- π Advanced Filtering - Multi-value filters for precise navigation
- π Optimized Performance - Lightning-fast load times with minimal overhead
- Django: 3.2 - 5.1.1 fully supported
- Python: 3.8+
pip install django-daisypip install -e git+https://github.com/hypy13/django-daisy.git#egg=django-daisyAdd to your INSTALLED_APPS in settings.py:
INSTALLED_APPS = [
'django_daisy',
'django.contrib.admin',
'django.contrib.humanize', # Required
# ... your other apps
]That's it! Your admin now has a modern, beautiful interface.
App Configuration (apps.py)
Customize individual app appearance in the sidebar:
class PollsConfig(AppConfig):
name = 'polls'
icon = 'fa fa-square-poll-vertical' # FontAwesome icon
divider_title = "Apps" # Section divider title
priority = 0 # Sidebar ordering (higher = top)
hide = False # Hide from sidebarGlobal Settings (settings.py)
Configure site-wide appearance and behavior:
DAISY_SETTINGS = {
# Branding
'SITE_TITLE': 'Django Admin',
'SITE_HEADER': 'Administration',
'INDEX_TITLE': 'Hi, welcome to your dashboard',
'SITE_LOGO': '/static/admin/img/daisyui-logomark.svg',
# Customization
'EXTRA_STYLES': [], # Additional CSS files
'EXTRA_SCRIPTS': [], # Additional JS files
'LOAD_FULL_STYLES': False, # Load complete DaisyUI library
'SHOW_CHANGELIST_FILTER': False, # Auto-open filter sidebar
'DONT_SUPPORT_ME': False, # Hide GitHub link
'SIDEBAR_FOOTNOTE': '', # Custom sidebar footer text
# Theme Configuration
'DEFAULT_THEME': None, # e.g., 'corporate', 'dark'
'DEFAULT_THEME_DARK': None, # Dark mode default
'SHOW_THEME_SELECTOR': True, # Show/hide theme dropdown
'THEME_LIST': [
{'name': 'Light', 'value': 'light'},
{'name': 'Dark', 'value': 'dark'},
# Add custom themes...
],
# Third-Party App Customization
'APPS_REORDER': {
'auth': {
'icon': 'fa-solid fa-person-military-pointing',
'name': 'Authentication',
'hide': False,
'divider_title': "Auth",
},
},
}Theme Configuration Examples
Single Default Theme:
DAISY_SETTINGS = {
'DEFAULT_THEME': 'corporate', # Always use this theme
}Separate Light/Dark Themes:
DAISY_SETTINGS = {
'DEFAULT_THEME': 'light', # Light mode default
'DEFAULT_THEME_DARK': 'dim', # Dark mode default
}Enforce Theme (No User Choice):
DAISY_SETTINGS = {
'DEFAULT_THEME': 'corporate',
'SHOW_THEME_SELECTOR': False, # Hide selector
}Custom Theme List:
DAISY_SETTINGS = {
'THEME_LIST': [
{'name': 'Light', 'value': 'light'},
{'name': 'Corporate', 'value': 'corporate'},
{'name': 'Luxury', 'value': 'luxury'},
],
}Note: For custom DaisyUI themes, enable
LOAD_FULL_STYLES: Trueto load all theme styles.
Tabbed Inline Admin
Create tabbed inline interfaces for related objects:
from django_daisy.mixins import NavTabMixin
class ChoiceInline(admin.TabularInline, NavTabMixin):
model = Choice
extra = 1
@admin.register(Poll)
class PollAdmin(admin.ModelAdmin):
inlines = [ChoiceInline]Tabbed Fieldsets
Convert fieldsets into navigation tabs:
@admin.register(MyModel)
class MyModelAdmin(admin.ModelAdmin):
fieldsets = (
(None, {
'fields': ('username', 'password')
}),
('Personal Info', {
'fields': ('first_name', 'last_name', 'email'),
'classes': ('navtab',), # Creates a tab
}),
('Permissions', {
'fields': ('is_active', 'is_staff', 'is_superuser'),
}),
)Language Switching
Enable language selection in the admin panel:
1. Add URL pattern (urls.py):
urlpatterns = [
path("i18n/", include("django.conf.urls.i18n")),
# ... other patterns
]2. Enable middleware (settings.py):
MIDDLEWARE = [
'django.middleware.locale.LocaleMiddleware',
# ... other middleware
]3. Define languages (settings.py):
LANGUAGES = [
('en', 'English'),
('fa', 'Farsi'),
# Add more languages...
]Contributions are welcome! Submit issues, suggestions, or pull requests on GitHub.
Special thanks to Cloud With Django for featuring Django Daisy!
Watch the demo: https://www.youtube.com/watch?v=WEKTXu1la9M
MIT License - see LICENSE file for details
Made with β€οΈ by the Django Daisy team