自定义或覆盖您的默认 Django 管理站点非常容易。这是关于此的Django 文档。以下是覆盖默认管理站点的示例。
在您的 Django 项目目录中创建一个admin.py
(如果还没有的话)。子类化 AdminSite。
要从管理 URL 中删除“appname”,请覆盖该get_urls()
函数:
# myproject/admin.py
from django.contrib import admin
class MyAdminSite(admin.AdminSite):
def get_urls(self):
urlpatterns = super().get_urls()
for model, model_admin in self._registry.items():
urlpatterns += [
path('%s/' % (model._meta.model_name), include(model_admin.urls)),
]
return urlpatterns
在您的项目目录中创建一个apps.py
(如果还没有的话):
# myproject/admin.py
from django.contrib.admin.apps import AdminConfig
class MyAdminConfig(AdminConfig):
default_site = 'myproject.admin.MyAdminSite'
在你的注册这个settings.py
:
INSTALLED_APPS = [
...
'myproject.apps.MyAdminConfig', # replaces 'django.contrib.admin'
...
]