Атрибут urls

Атрибут urls класса AdminSite представляет собой свойство, которое возвращает кортеж маршрутов (URL patterns) для административной панели Django. Он используется в главном файле urls.py проекта для подключения всех URL-адресов административного интерфейса. Атрибут является частью механизма, позволяющего регистрировать модели и отображать их в панели администратора.

Синтаксис

pythonfrom django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
]

Атрибут urls используется в корневом конфигураторе URL. Обычно он подключается по пути 'admin/', но при необходимости вы можете изменить этот путь.

Пример

Рассмотрим пример подключения административной панели с базовым URL-адресом 'admin/':

pythonfrom django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
]

Результат выполнения кода после запуска сервера:

python"Starting development server at http://127.0.0.1:8000/"
"Admin interface available at http://127.0.0.1:8000/admin/"

Пример

Вы также можете переопределить URL-адрес административной панели, указав другой путь:

pythonfrom django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('dashboard/', admin.site.urls),
]

Результат выполнения кода:

python"Starting development server at http://127.0.0.1:8000/"
"Admin interface available at http://127.0.0.1:8000/dashboard/"

Таким образом, вы можете изменить стандартный маршрут административной панели в соответствии с вашими потребностями.

Пример

Если вы используете кастомную административную панель, созданную на основе AdminSite, атрибут urls также работает аналогично:

pythonfrom django.contrib.admin import AdminSite
from django.urls import path, include

class CustomAdminSite(AdminSite):
    site_title = "Custom Admin"
    site_header = "Custom Administration"

custom_admin_site = CustomAdminSite()

urlpatterns = [
    path('custom-admin/', custom_admin_site.urls),
]

Результат выполнения кода:

python"Starting development server at http://127.0.0.1:8000/"
"Custom admin interface available at http://127.0.0.1:8000/custom-admin/"

В этом примере мы создали кастомный экземпляр административной панели и подключили его по пути 'custom-admin/'.

Смотрите также

  • класс AdminSite,
    который управляет всей административной панелью Django
  • метод register,
    который регистрирует модели для отображения в административной панели
  • метод unregister,
    который отменяет регистрацию модели в административной панели
  • декоратор admin.register,
    который упрощает регистрацию моделей в административной панели