📅  最后修改于: 2023-12-03 15:10:32.069000             🧑  作者: Mango
在 Django 中,管理后台是一个很方便的工具来管理你的应用程序。默认情况下,Django 管理后台的标题为 "Django 管理"。但是,你可以通过以下方法自定义标题和其他元素。
要自定义 Django 管理员模板,首先需要创建一个名为 admin
的文件夹,并在该文件夹内创建一个名为 base_site.html
的文件。
<!DOCTYPE html>
{% extends "admin/base.html" %}
{% block title %}{{ title }} | {{ site_title|default:_('Django site admin') }}{% endblock %}
{% block branding %}
<h1 id="site-name"><a href="{% url 'admin:index' %}">{{ site_header|default:_('Django administration') }}</a></h1>
{% endblock %}
{% block nav-global %}
{# 这里是全局导航栏 #}
{% endblock %}
{% block breadcrumbs %}
{# 这里是面包屑导航 #}
{% endblock %}
{% block content %}
<div id="content-main">
{% block messages %}
{% if messages %}
{# 这里是消息 #}
{% endif %}
{% endblock messages %}
{% block content_title %}
<h1>{{ title }}</h1>
{% endblock %}
{% block object-tools %}
{% if title %}
<div style="clear:both;padding-top:30px;">
{% block object-tools-items %}
{# 这里是对象工具 #}
{% endblock %}
</div>
{% endif %}
{% endblock %}
{% block object-tools-special %}{% endblock %}
{% block admin-panel %}
{% if site_url %}
<div id="panel">
<ul>
{% if site_url %}
<li><a href="{{ site_url }}" id="view_site">{{ site_title|default:_('View site') }}</a></li>
{% endif %}
{% if user.is_active and user.is_staff %}
<li><a href="{% url 'admin:password_change' %}" id="change-password">{% trans 'Change password' %}</a></li>
{% endif %}
{% if user.is_active and user.is_staff %}
<li><a href="{% url 'admin:logout' %}" id="logout">{% trans 'Log out' %}</a></li>
{% endif %}
{% if user.is_active and user.is_staff %}
<li><a href="{% url 'admin:history_recently_changed' %}" id="recent-actions">{% trans 'Recent actions' %}</a></li>
{% endif %}
</ul>
</div>
{% endif %}
{% endblock %}
{% block content_objects %}
{% if cl %}
<div class="module">
<div class="caption">
{% block object_list_title %}
<table cellspacing="0" summary="{% trans ' Recently added ' %}{% localizestring cl.opts.verbose_name_plural %}">
<thead>
<tr>
{% block object-tools-header %}
{# 这里是对象工具的标题 #}
{% endblock %}
</tr>
</thead>
</table>
{% endblock %}
</div>
<div class="module">
{% if action_form and actions_on_top %}
{% get_current_language as LANGUAGE_CODE %}
<form action="{{ action_form.action }}" method="post" id="changelist-form">{% csrf_token %}
<div>
{% if action_form.select_across %}
<input type="hidden" name="{{ action_form.select_across.name }}" value="0" id="{{ action_form.select_across.id }}" />
{% endif %}
{% if action_form.cleaned_data.action == 'delete_selected' %}
{% if action_form.cleaned_data.select_across %}
{# 这里是对选中的所有对象进行操作 #}
{% else %}
{# 这里是只对选中的对象逐一操作 #}
{% endif %}
{% endif %}
{% for result in cl.result_list %}
{% endfor %}
</div>
{% if cl.formset and cl.formset.is_multipart %}
{% for form in cl.formset.forms %}
{% for field in form %}
{% if field.is_hidden %}
{{ field }}
{% endif %}
{% endfor %}
{% endfor %}
{% endif %}
{% for result in cl.result_list %}
{% endfor %}
{% block pagination %}
{# 这里是分页 #}
{% endblock %}
</form>
{% endif %}
{% endblock %}
</div>
</div>
{% endif %}
{% endblock %}
</div>
{% endblock %}
在此示例中,我们创建了 base_site.html
模板,其中包含了许多块标签,可以让我们自定义 Django 管理员界面的各个方面。
定义好了自定义 Django 管理员模板,我们就可以在启用管理前台的应用程序中使用它了。只需在 settings.py
中设置以下内容即可:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
],
'builtins': [
'django.contrib.admin.templatetags.admin_static',
'django.contrib.admin.templatetags.admin_urls',
'django.contrib.staticfiles.templatetags.staticfiles',
],
'context_processors': [
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
],
},
},
]
# ...
# 更改 Django 管理员的标题
admin.site.site_header = "My custom django admin"
在这个示例中,我们将 My custom django admin
赋值给 admin.site.site_header
,使其成为了 Django 管理者后台的标题。
现在,我们已经成功地更改了 Django 管理员界面的标题。你还可以按照相同的模式自定义其他元素。