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
| Key | Type | Default | Purpose |
|---|---|---|---|
title | str | AdminLTE 4 | Default <title> text. |
title_prefix / title_postfix | str | "" | Wrap the per-page title. |
logo | str | <b>Admin</b>LTE | Brand markup (rendered as raw HTML). |
logo_alt_text | str | AdminLTE 4 | Sidebar brand text next to the logo image. |
logo_img | str | bundled logo | Static path to the brand image. |
layout_fixed_sidebar | bool | True | Adds layout-fixed to <body>. |
layout_fixed_navbar | bool | True | Adds fixed-header. |
layout_fixed_footer | bool|None | None | Adds fixed-footer. |
layout_rtl | bool | False | Right-to-left layout (loads the RTL stylesheet). |
layout_dark_mode | bool|None | None | True forces dark; None respects the user toggle / OS. |
sidebar_theme | str | dark | dark | light. |
sidebar_breakpoint | str | lg | sidebar-expand-{breakpoint}. |
sidebar_mini | bool | True | Icon-only collapsed sidebar (sidebar-mini). |
sidebar_collapse | bool | False | Start collapsed. |
navbar_search | bool | True | Show the topbar search trigger. |
color_mode_toggle | bool | True | Show the Light/Dark/Auto toggle. |
language_switcher | bool | False | Topbar language dropdown (needs LANGUAGES + the i18n URLs). |
assets_mode | str | vite | vite | static. |
admin_enabled | bool | True | Apply the AdminLTE skin to django.contrib.admin. |
menu | list | [] | Sidebar definition — see Menu & Sidebar. |
filters | list | 4 built-ins | The 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