Django 2.2:有没有办法从管理网址中删除应用程序名称?

Django 2.2 : Is there any way to remove app name from admin urls?

我正在使用 Django 内置管理面板,有什么方法可以从网址中删除应用名称吗?

如果我想访问用户列表,它会将我重定向到 27.0.0.1:8000/admin/auth/user/ 我可以在没有应用名称 auth 的情况下实现 27.0.0.1:8000/admin/user/ 吗?

谢谢,

如文档所述 here 您可以创建自定义 AdminSite 并覆盖 get_urls 方法。这个简单的代码应该可以完成工作:

在你的common.admin.py

from django.contrib.admin import AdminSite

class MyAdminSite(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


my_admin = MyAdminSite('My Admin')

my_admin.register(YourModel)
...

请注意,您使用新的自定义 AdminSite 实例注册您的模型。

然后在你的项目中urls.py

from common.admin import my_admin as admin
from django.urls import path

urlpatterns = [
    path('admin/', admin.urls),
    # Your other patterns
]