Django's built-in admin is incredibly powerful and highly customizable. However, customizing it from scratch can be time-consuming and daunting. Fortunately, there's an amazing package to address this issue: django-unfold. Built on top of Tailwind CSS, itβs not only powerful but also polished and highly customizable.
In this post, Iβll walk you through what django-unfold is, how to integrate it into your project, and how it can make managing your Django admin more intuitive.
What is django-unfold?
Unfold is a theme for the Django admin interface that incorporates best practices for building full-fledged admin areas. It is designed to enhance and extend the default administration features provided by Django.
Why Use It?
- Highly Customizable
- Polished Look
- Dark Mode: Supports both light and dark mode versions.
- Responsive Design
- And Many More
For more details, visit their official website.
Getting Started
Step 1: Install django-unfold
Install the package via pip:
pip install django-unfold
Step 2: Configure INSTALLED_APPS
Add unfold
to your INSTALLED_APPS
in settings.py
:
INSTALLED_APPS = [
"unfold", # Add this before django.contrib.admin
"django.contrib.admin",
]
Step 3: Apply django-unfold to Your Admin Models
In your app's admin.py
, use django-unfold like this:
from django.contrib import admin
from .models import Doctor
from unfold.admin import ModelAdmin as UnfoldModelAdmin
@admin.register(Doctor)
class DoctorAdmin(UnfoldModelAdmin):
pass
If you want to customize filters and other admin options, you can do so like this:
@admin.register(Doctor)
class DoctorAdmin(UnfoldModelAdmin):
list_display = (
"first_name",
"last_name",
"specialization",
"years_of_experience",
"available",
"date_joined",
)
list_filter = ("specialization", "available", "gender")
search_fields = ("first_name", "last_name", "email", "phone")
Example: Before and After
Below is an example of how django-unfold transforms the default Django admin theme:
If you found this helpful, let me know by leaving a π or a comment!, or if you think this post could help someone, feel free to share it! Thank you very much!
Top comments (0)