Custom Admin Site Branding
A snippet showing how to customize Django admin site branding.
# admin.py
from django.contrib import admin
admin.site.site_header = "Django.wiki"
admin.site.site_title = "Django.wiki Admin"
admin.site.index_title = "Welcome to Django.wiki"
# admin.py (custom AdminSite class)
from django.contrib.admin import AdminSite
from django.contrib import admin
from .models import Product
class DjangoWikiAdminSite(AdminSite):
site_header = "Django.wiki"
site_title = "Django.wiki Admin"
index_title = "Welcome to Django.wiki"
django_wiki_admin_site = DjangoWikiAdminSite(name="django_wiki_admin")
django_wiki_admin_site.register(Product)
# urls.py (use custom site)
from django.urls import path
from .admin import django_wiki_admin_site
urlpatterns = [
path('django-wiki-admin/', django_wiki_admin_site.urls),
]
# templates/admin/base_site.html (override branding)
{% extends "admin/base.html" %}
{% block title %}{{ site_title }} | {{ title }}{% endblock %}
{% block branding %}
<h1 id="site-name" class="mb-0">
<a href="{% url 'admin:index' %}">Django.wiki</a>
</h1>
{% endblock %}
{% block nav-global %}{% endblock %}
# templates/admin/base_site.html (when using custom AdminSite)
{% extends "admin/base.html" %}
{% block title %}{{ site_title }} | {{ title }}{% endblock %}
{% block branding %}
<h1 id="site-name" class="mb-0">
<a href="/django-wiki-admin/">Django.wiki</a>
</h1>
{% endblock %}
{% block nav-global %}{% endblock %}
Explanation:
-
Quick branding: set
site_header,site_title, andindex_titleonadmin.siteinadmin.py. -
Advanced mode: subclass
AdminSiteto run multiple branded admin sites side-by-side (e.g., staff vs ops). -
Template override: place
templates/admin/base_site.htmlto fully control the header markup and title blocks. -
Point your URLs at the custom site (e.g.,
/django-wiki-admin/) when using a subclassedAdminSite.
- Category Admin
- Total Views 903
- Last Modified 09 November, 2025
- Tags #admin #branding #site #customization
Previous snippet
Read-only Fields in Admin
Next snippet