Configuration

Everything is configured through a single ADMINLTE dict in your Django settings. The package shallow-merges it over its defaults (the menu, filters and plugins keys are replaced wholesale), so you only set the keys you want to change.

A complete example

ADMINLTE = {
    # Title
    "title": "My Dashboard",
    "title_prefix": "",
    "title_postfix": " | Acme",

    # Branding
    "logo": "<b>My</b>App",                  # rendered as HTML
    "logo_alt_text": "My App",                  # sidebar brand text
    "logo_img": "adminlte/img/AdminLTELogo.png",

    # Layout (map to AdminLTE body classes)
    "layout_fixed_sidebar": True,
    "layout_fixed_navbar": True,
    "layout_fixed_footer": False,
    "layout_rtl": False,

    # Sidebar
    "sidebar_theme": "dark",                    # dark | light
    "sidebar_breakpoint": "lg",                 # sidebar-expand-{breakpoint}
    "sidebar_mini": True,
    "sidebar_collapse": False,

    # Topbar
    "navbar_search": True,
    "color_mode_toggle": True,

    # Footer
    "footer_left": "© 2026 Acme",
    "footer_right": "v1.0.0",

    # Asset delivery
    "assets_mode": "vite",                      # vite | static

    # Menu (see the Menu page)
    "menu": [
        {"text": "Dashboard", "url": "/", "icon": "bi bi-speedometer"},
    ],
}

Common keys

KeyTypeDefaultPurpose
titlestrAdminLTE 4Default <title> text.
title_prefix / title_postfixstr""Wrap the per-page title.
logostr<b>Admin</b>LTEBrand markup (rendered as raw HTML).
logo_alt_textstrAdminLTE 4Sidebar brand text next to the logo image.
logo_imgstrbundled logoStatic path to the brand image.
layout_fixed_sidebarboolTrueAdds layout-fixed to <body>.
layout_fixed_navbarboolTrueAdds fixed-header.
layout_fixed_footerbool|NoneNoneAdds fixed-footer.
layout_rtlboolFalseRight-to-left layout (loads the RTL stylesheet).
layout_dark_modebool|NoneNoneTrue forces dark; None respects the user toggle / OS.
sidebar_themestrdarkdark | light.
sidebar_breakpointstrlgsidebar-expand-{breakpoint}.
sidebar_miniboolTrueIcon-only collapsed sidebar (sidebar-mini).
sidebar_collapseboolFalseStart collapsed.
navbar_searchboolTrueShow the topbar search trigger.
color_mode_toggleboolTrueShow the Light/Dark/Auto toggle.
language_switcherboolFalseTopbar language dropdown (needs LANGUAGES + the i18n URLs).
assets_modestrvitevite | static.
admin_enabledboolTrueApply the AdminLTE skin to django.contrib.admin.
menulist[]Sidebar definition — see Menu & Sidebar.
filterslist4 built-insThe menu filter pipeline (dotted paths).

Topbar dropdowns

The navbar renders Messages / Notifications dropdowns and a rich user card when you provide their data. Omit a key to hide that dropdown:

ADMINLTE = {
    "navbar_messages": {
        "count": 3,
        "items": [
            {"image": "adminlte/img/user1-128x128.jpg", "name": "Brad Diesel",
             "text": "Call me whenever you can...", "time": "4 Hours Ago", "url": "#"},
        ],
    },
    "navbar_notifications": {
        "count": 15,
        "items": [
            {"icon": "bi bi-envelope", "text": "4 new messages", "time": "3 mins", "url": "#"},
        ],
    },
    "usermenu": {                                # rich user card; omit for the default Django-user menu
        "image": "adminlte/img/user2-160x160.jpg",
        "name": "Alexander Pierce", "description": "Web Developer",
        "since": "Member since Nov. 2023",
        "stats": [{"label": "Followers", "url": "#"}, {"label": "Sales", "url": "#"}],
    },
}

Reading config in templates

The merged config is exposed as the adminlte context variable on every page (via the context processor):

{{ adminlte.title }}
{{ adminlte.sidebar_theme }}
{% if adminlte.dark_mode %}dark{% endif %}

logo and footer_left contain HTML — render them through the adminlte_safe filter (the shipped partials already do) so tags like <b> produce the two-tone brand effect.


AdminLTE 4 · Django port Edit on GitHub