DEV Community

Cover image for Simplify Your Django Admin with django-unfold
Eshat Jubayer
Eshat Jubayer

Posted on

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!

Heroku

Simplify your DevOps and maximize your time.

Since 2007, Heroku has been the go-to platform for developers as it monitors uptime, performance, and infrastructure concerns, allowing you to focus on writing code.

Learn More

Top comments (3)

Collapse
 
aniruddhaadak profile image
ANIRUDDHA ADAK โ€ข

wow amazing .

Collapse
 
eshat002 profile image
Eshat Jubayer โ€ข

Glad you liked it!

Collapse
 
aniruddhaadak profile image
ANIRUDDHA ADAK โ€ข

Thank you ๐Ÿ˜ป

Image of Timescale

Timescale โ€“ the developer's data platform for modern apps, built on PostgreSQL

Timescale Cloud is PostgreSQL optimized for speed, scale, and performance. Over 3 million IoT, AI, crypto, and dev tool apps are powered by Timescale. Try it free today! No credit card required.

Try free

๐Ÿ‘‹ Kindness is contagious

Please leave a โค๏ธ or a friendly comment on this post if you found it helpful!

Okay