如何修改Django Admin中的应用名称与模型列表标题?
修改Django Admin面板的应用名称与模型列表标题
一、修改侧边栏中的应用名称
Django Admin侧边栏的应用名称由对应应用的AppConfig类定义,按以下步骤修改:
- 打开目标应用的
apps.py文件(例如Products应用的products/apps.py),修改AppConfig的verbose_name属性为你需要的波斯语名称:
# products/apps.py from django.apps import AppConfig class ProductsConfig(AppConfig): default_auto_field = 'django.db.models.BigAutoField' name = 'products' verbose_name = 'محصولات' # 替换为你的波斯语应用名称
- 在项目根目录的
settings.py中,将原应用注册项(如'products')替换为AppConfig的完整路径:
# settings.py INSTALLED_APPS = [ # 其他应用 'products.apps.ProductsConfig', # 其他应用 ]
刷新Admin页面后,侧边栏的应用名称会更新为设置的波斯语内容。
二、修改模型列表顶部的标题
模型列表页面顶部的默认标题格式为[模型复数名] | Django site admin,提供两种自定义方式:
方法1:针对单个模型自定义标题
在应用的admin.py中,为目标模型的ModelAdmin类重写changelist_view方法,自定义页面标题:
# products/admin.py from django.contrib import admin from .models import YourModel # 替换为你的模型类 class YourModelAdmin(admin.ModelAdmin): # 你的其他配置(如list_display、search_fields等) def changelist_view(self, request, extra_context=None): extra_context = extra_context or {} # 设置波斯语标题 extra_context['title'] = 'لیست محصولات | پنل مدیریت' return super().changelist_view(request, extra_context) admin.site.register(YourModel, YourModelAdmin)
方法2:全局自定义Admin站点标题
如果需要统一修改所有页面的标题风格,可自定义AdminSite类:
# admin.py from django.contrib.admin import AdminSite class CustomAdminSite(AdminSite): # 全局站点头部标题 site_header = 'پنل مدیریت سایت' # 浏览器标签页标题 site_title = 'پنل مدیریت' # Admin首页标题 index_title = 'مدیریت محتوا' # 可根据当前访问路径动态设置模型列表标题 def each_context(self, request): context = super().each_context(request) if '/products/yourmodel/' in request.path: context['title'] = 'لیست محصولات' return context # 初始化自定义站点 custom_admin_site = CustomAdminSite(name='custom_admin') # 注册模型到自定义站点 custom_admin_site.register(YourModel, YourModelAdmin)
随后在项目的urls.py中替换原Admin路由:
# urls.py from django.urls import path from .admin import custom_admin_site urlpatterns = [ # path('admin/', admin.site.urls), # 注释原路由 path('admin/', custom_admin_site.urls), # 其他路由 ]
内容的提问来源于stack exchange,提问作者ali.m.n.2003
相关产品推荐
相关产品推荐

