Django 2.2: есть ли способ удалить имя приложения из URL-адресов администратора? - PullRequest
0 голосов
/ 06 января 2020

Я использую Django Встроенная панель администратора, есть ли способ удалить имя приложения из URL?

Если я хочу получить доступ к списку пользователей, он перенаправляет меня на 27.0.0.1:8000/admin/auth/user/ Могу ли я сделать это 27.0.0.1:8000/admin/user/ без названия приложения auth?

Спасибо,

1 Ответ

1 голос
/ 06 января 2020

Как задокументировано здесь вы можете создать пользовательский 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
]
...