Django Unfold

0.89.0 · active · verified Sun Apr 12

Django Unfold is a modern, customizable admin theme for Django, built on top of Tailwind CSS. It enhances the existing `django.contrib.admin` interface with a clean UI, dark mode, advanced navigation, and powerful features, without requiring a complete replacement or database migrations. Actively developed with frequent releases, the current version is 0.89.0.

Warnings

Install

Imports

Quickstart

After installing `django-unfold`, add `"unfold"` to your `INSTALLED_APPS` list *before* `"django.contrib.admin"`. Then, ensure your `ModelAdmin` classes inherit from `unfold.admin.ModelAdmin`. Run `python manage.py collectstatic` to gather Unfold's static files.

import os

# settings.py
SECRET_KEY = os.environ.get('DJANGO_SECRET_KEY', 'your-insecure-secret-key-for-dev')
DEBUG = os.environ.get('DJANGO_DEBUG', 'True').lower() == 'true'

INSTALLED_APPS = [
    "unfold", # Must be before django.contrib.admin
    "django.contrib.admin",
    "django.contrib.auth",
    "django.contrib.contenttypes",
    "django.contrib.sessions",
    "django.contrib.messages",
    "django.contrib.staticfiles",
    # Your apps here
]

# urls.py
from django.contrib import admin
from django.urls import path

urlpatterns = [
    path('admin/', admin.site.urls),
]

# myapp/admin.py
from django.contrib import admin
from unfold.admin import ModelAdmin
from .models import MyModel

@admin.register(MyModel)
class MyModelAdmin(ModelAdmin):
    list_display = ('name', 'created_at')
    search_fields = ('name',)

# myapp/models.py
from django.db import models

class MyModel(models.Model):
    name = models.CharField(max_length=255)
    description = models.TextField(blank=True)
    created_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.name

view raw JSON →