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, and index_title on admin.site in admin.py.
  • Advanced mode: subclass AdminSite to run multiple branded admin sites side-by-side (e.g., staff vs ops).
  • Template override: place templates/admin/base_site.html to fully control the header markup and title blocks.
  • Point your URLs at the custom site (e.g., /django-wiki-admin/) when using a subclassed AdminSite.
  • Category Admin
  • Total Views 903
  • Last Modified 09 November, 2025
  • Tags #admin #branding #site #customization
Previous snippet
Read-only Fields in Admin
Next snippet
Admin List Pagination
Never miss a story on Django.wiki

Subscribe for fresh tutorials, snippets, and updates.

By subscribing you agree to our Privacy Policy.