Simplify Your Django Admin with django-unfold

eshat002

Eshat Jubayer

Posted on November 16, 2024

Simplify Your Django Admin with django-unfold

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
Enter fullscreen mode Exit fullscreen mode

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",
]
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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")
Enter fullscreen mode Exit fullscreen mode

Example: Before and After

Below is an example of how django-unfold transforms the default Django admin theme:

django-unfold admin

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!

๐Ÿ’– ๐Ÿ’ช ๐Ÿ™… ๐Ÿšฉ
eshat002
Eshat Jubayer

Posted on November 16, 2024

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related

ยฉ TheLazy.dev

About