如何在Django Admin头部产品Logo旁显示软件版本号
Django Admin头部展示版本号实现方案
全程用Django原生能力实现,不需要安装第三方依赖,分两步操作:
1. 把settings中的版本号注入模板全局上下文
Django模板默认不能直接读取settings里的自定义配置,需要写一个简单的上下文处理器:
- 在你的项目主应用目录下新建
context_processors.py文件,写入以下代码:
from django.conf import settings def release_version_processor(request): return {"release_version": settings.release}
- 打开项目的
settings.py,找到TEMPLATES配置项,在OPTIONS.context_processors列表的末尾追加你刚写的处理器路径,注意替换成你实际的主应用名:
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", # 追加下面这行 "你的主应用名.context_processors.release_version_processor", ], }, }, ]
2. 修改现有base_site.html模板
直接在你已有的branding块里加版本号标签即可,下面是改好的完整模板代码,默认版本号显示在Logo右侧,样式和你现在的深绿色头部适配:
{% extends "admin/base.html" %} {% load static %} {% block title %}{% if subtitle %}{{ subtitle }} | {% endif %}{{ title }} | {{ site_title|default:_('Django site admin') }}{% endblock %} {% block branding %} <h1 id="site-name"> <a href="{% url 'admin:index' %}"> <img src="{% static 'lumbara.png' %}" height="50px" /> </a> <!-- 版本号展示,Logo右侧相邻位置 --> <span style="font-size: 12px; color: #fff; margin-left: 8px; vertical-align: bottom;">v{{ release_version }}</span> </h1> {% endblock %} {% block extrastyle %} <style> .module h2, .module caption, .inline-group h2,#header { background: #006400 url(../img/default-bg.gif) top left repeat-x; color: #fff; } /* 可选:调整site-name的对齐方式,避免版本号垂直错位 */ #site-name { display: flex; align-items: center; } </style> {% endblock %} {% block nav-global %}{% endblock %}
如果要把版本号放在Logo正下方,只需要把版本号span的样式替换成
display:block; font-size:12px; color:#fff; text-align:center; margin-top:4px;,同时把#site-name的flex样式去掉即可。
改完之后重启Django服务,刷新Admin页面就能看到版本号了。
内容的提问来源于stack exchange,提问作者Colateral
相关产品推荐
相关产品推荐

