Атрибут urls
Атрибут urls класса AdminSite представляет собой свойство, которое возвращает кортеж маршрутов (URL patterns) для административной панели Django. Он используется в главном файле urls.py проекта для подключения всех URL-адресов административного интерфейса. Атрибут является частью механизма, позволяющего регистрировать модели и отображать их в панели администратора.
Синтаксис
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
]
Атрибут urls используется в корневом конфигураторе URL. Обычно он подключается по пути 'admin/', но при необходимости вы можете изменить этот путь.
Пример
Рассмотрим пример подключения административной панели с базовым URL-адресом 'admin/':
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
]
Результат выполнения кода после запуска сервера:
"Starting development server at http://127.0.0.1:8000/"
"Admin interface available at http://127.0.0.1:8000/admin/"
Пример
Вы также можете переопределить URL-адрес административной панели, указав другой путь:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('dashboard/', admin.site.urls),
]
Результат выполнения кода:
"Starting development server at http://127.0.0.1:8000/"
"Admin interface available at http://127.0.0.1:8000/dashboard/"
Таким образом, вы можете изменить стандартный маршрут административной панели в соответствии с вашими потребностями.
Пример
Если вы используете кастомную административную панель, созданную на основе AdminSite, атрибут urls также работает аналогично:
from 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),
]
Результат выполнения кода:
"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,
который упрощает регистрацию моделей в административной панели