{% extends "admin/base.html" %} {% load i18n static django_admin_modern_view_tags %} {% comment %} Django Admin UI shell: overrides admin/base_site.html directly (not admin/base.html itself) so every admin page — which all extend admin/base_site.html — picks this up automatically. Note: {% django_admin_modern_view_version as ma_v %} has to be called again inside EACH block below, not once up here — anything outside a {% block %} in a template that extends another is discarded entirely, and a variable assigned in one block isn't visible in another. {% endcomment %} {% block title %}{% if subtitle %}{{ subtitle }} | {% endif %}{{ title }} | {{ site_title|default:_('Django site admin') }}{% endblock %} {% block extrastyle %} {{ block.super }} {% django_admin_modern_view_version as ma_v %} {% comment %} ?v={{ ma_v }} cache-busts on package upgrades (not on every request) — the browser keeps caching normally between releases and only refetches once this app's own version bumps. {% endcomment %} {% endblock %} {% block branding %}
{{ site_header|default:_('Django administration') }}
{% if user.is_anonymous %} {% include "admin/color_theme_toggle.html" %} {% endif %} {% endblock %} {% block usertools %} {% if has_permission %} {% endif %} {{ block.super }} {% endblock %} {% block nav-global %}{% endblock %} {% block extrabody %} {{ block.super }} {% django_admin_modern_view_version as ma_v %} {# Toasts (Phase 11): progressively upgrades Django's own messagelist #}
{# Command palette (Phase 4) #} {# Shortcut help (Phase 16) #}
Ctrl K {% translate 'Search' %} Ctrl S {% translate 'Save' %} ? {% translate 'Shortcuts' %} Esc {% translate 'Close' %}
{% endblock %}