Skip to content

Django AdminX

Drop-in replacement for django.contrib.admin that works with Jinja2 (and DTL). Ships standalone performance mixins you can use with the stock Django admin too.

Two ways to use it

Full admin replacement

Replace django.contrib.admin entirely. All admin pages render via Jinja2 by default, with DTL fallback.

INSTALLED_APPS = ["django_admin_boost.admin", ...]
import django_admin_boost.admin as admin

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

Standalone mixins

Keep stock Django admin, just add performance optimizations.

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

What's included

Feature Standalone Full admin
ListOnlyFieldsMixin — automatic .only() on changelist querysets Yes Baked in
SmartPaginatorMixin — PostgreSQL estimated counts Yes Baked in
EstimatedCountPaginatorpg_class.reltuples paginator Yes Baked in
Jinja2 admin templates (all 50) Yes
DTL admin templates (fallback) Yes
Drop-in ModelAdmin, AdminSite, register Yes