Django Admin Cookbook-5如何在Django Admin后台中添加Logo

目录

后台显示文字与自定义

1.如何更改管理后台标题Django administration?
2.如何设置模型的复数文本?
3.如何创建两个独立的管理站点?
4.如何从Django管理后台中删除默认应用程序?
5.如何在Django管理后台中添加Logo?
6.如何覆盖Django管理后台模板?

列表页自定义字段

7.如何在列表视图页面上显示自定义字段?
8.如何在Django管理后台中优化查询?
9.如何启用对自定义字段的排序?
10.如何启用对自定义字段的过滤?
11.如何显示计算出的布尔字段的“开关”图标?

列表也自定义批量操作

12.如何在Django管理后台中添加额外操作?
13.如何从Django管理后台中导出CSV?
14.如何在Django管理后台中去掉"删除所选"操作?
15.如何在Django管理后台中添加自定义操作按钮?
16.如何使用Django管理后台导入CSV?

后台权限自定义

17.如何将Django管理后台限制为特定用户?
18.如何限制对Django管理后台部分的访问?
19.如何仅允许管理员创建一个对象?
20.如何删除模型的“添加”和“删除”按钮?

使用内联字段

21.如何从一位Django管理后台编辑多个模型?
22.如何将一对一关系添加为模型内联?
23.如何在Django管理后台中添加嵌套的内联?
24.如何从两个不同的模型创建一个Django管理后台页面?

模型列表页自定义

25.如何在模型列表页上显示更多行?
26.如何禁用Django管理后台分页?
27.如何在Django管理后台中添加基于日期的过滤?
28.如何在列表视图页面上显示多对多或反向联接字段?

模型修改页自定义

29.如何在Django管理后台中显示Imagefield中的图像?
30.保存时如何将模型与当前用户关联?
31.如何在Django管理后台中将字段标记为只读?
32.如何在Django管理后台中显示不可编辑的字段?
33.如何使字段仅在创建时可编辑,编辑时只读?
34.如何在Django管理后台中过滤外联字段下拉值?
35.如何使用带有大量对象的外联字段的管理模型?
36.如何更改下拉菜单中的ForeignKey显示文本?
37.如何向Django Admin模型修改页添加自定义按钮?

其他

38.如何获取特定对象的Django管理后台URL?
39.如何在Django管理后台添加两个同样的模型?
40.如何为Django管理后台覆盖保存操作?
41.如何将数据库视图添加到Django管理后台?
42.如何在Django管理后台控制台中设置应用程序和模型的顺序?

5.如何在Django Admin后台中添加Logo?

你的上司或许对你创建的UMSRA后台已经比较满意,但是市场人员希望将UMSRA的Logo放在所有后台管理页面上。

你需要覆盖Django提供的默认模板页面。在项目settings.py文件中,默认TEMPLATES的设置如下。

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

这意味着Django将在你项目的templates下,对应每个应用名称的目录中查找所需要的HTML模板文件。你也可以通过为设置值来覆盖模板的查找目录TEMPLATES.DIRS。

'DIRS': []修改为'DIRS': [os.path.join(BASE_DIR, 'templates/')],并在项目下创建templates目录。如果你的STATICFILES_DIRS设置为空,将其设置为:

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"),
]

然后将admin应用(python/site-packages/django/contrib/admin/templates)中的base_site.html文件,复制到你项目的templates\admin目录。将branding块中的默认文本替换为Logo图片的链接:

<h1 id="site-name">
    <a href="{% url 'admin:index' %}">
        <img src="{% static 'umsra_logo.png' %}" height="40px" />
    </a>
</h1>

修改改后,完整的base_site.html代码如下:

{% extends "admin/base.html" %}
{% load staticfiles %}
{% block title %}{{ title }} | {{ site_title|default:_('Django site admin') }}{% endblock %}
{% block branding %}
<h1 id="site-name">
    <a href="{% url 'admin:index' %}">
        <img src="{% static 'umsra_logo.png' %}" height="40px" />
    </a>
</h1>
{% endblock %}
{% block nav-global %}{% endblock %}

保存并重启应用,你的Admin后台将显示如下:

实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。

如有不懂还要咨询下方小卡片,博主也希望和志同道合的测试人员一起学习进步

在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。

我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,

测试开发视频教程、学习笔记领取传送门!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值