Skip to content

Installation

pip install django-admin-boost

For Jinja2 support:

pip install django-admin-boost[jinja2]

Full admin replacement

Replace django.contrib.admin with django_admin_boost.admin in your settings:

INSTALLED_APPS = [
    "django_admin_boost.admin",
    "django.contrib.auth",
    "django.contrib.contenttypes",
    "django.contrib.sessions",
    "django.contrib.messages",
    "django.contrib.staticfiles",
    ...
]

TEMPLATES = [
    {
        "BACKEND": "django.template.backends.jinja2.Jinja2",
        "APP_DIRS": True,
        "OPTIONS": {
            "environment": "django_admin_boost.admin.jinja2_env.environment",
            "context_processors": [
                "django.template.context_processors.request",
                "django.contrib.auth.context_processors.auth",
                "django.contrib.messages.context_processors.messages",
            ],
        },
    },
    {
        "BACKEND": "django.template.backends.django.DjangoTemplates",
        "APP_DIRS": True,
        "OPTIONS": {
            "context_processors": [
                "django.template.context_processors.request",
                "django.contrib.auth.context_processors.auth",
                "django.contrib.messages.context_processors.messages",
            ],
        },
    },
]

Then use django_admin_boost.admin instead of django.contrib.admin in your admin modules:

import django_admin_boost.admin as admin

@admin.register(MyModel)
class MyModelAdmin(admin.ModelAdmin):
    list_display = ["name", "status", "created_at"]

Standalone mixins only

If you just want the performance mixins with stock Django admin:

INSTALLED_APPS = [
    "django.contrib.admin",
    ...
]
from django.contrib.admin import ModelAdmin
from django_admin_boost import ListOnlyFieldsMixin, EstimatedCountPaginator

class MyModelAdmin(ListOnlyFieldsMixin, ModelAdmin):
    list_only_fields = ["id", "name", "status"]
    paginator = EstimatedCountPaginator

No app registration needed — just import the mixins.