В Django-Oscar модель User (пользователь) прокидывается в админку через адаптированный класс OscarUserAdmin
, который является наследником стандартного класса UserAdmin
из модуля django.contrib.auth.admin
. Этот класс расширяется и настраивается для отображения и редактирования полей модели User в административной панели.
Для начала, вы должны импортировать класс OscarUserAdmin
из модуля oscar.apps.customer.admin
и зарегистрировать его в admin.py
вашего приложения:
from django.contrib import admin from oscar.apps.customer.admin import OscarUserAdmin admin.site.unregister(User) admin.site.register(User, OscarUserAdmin)
Здесь мы отменяем регистрацию стандартного класса UserAdmin
из django.contrib.auth.admin
с помощью unregister
и регистрируем наш класс OscarUserAdmin
для модели User.
Класс OscarUserAdmin
определен таким образом, чтобы настроить отображение и редактирование полей, определенных в модели User. Он определяет списки полей, которые должны отображаться или редактироваться, а также переопределяет методы для изменения поведения в административной панели.
Например, если вы хотите отобразить дополнительные поля в административной панели, вы можете добавить их в атрибут fieldsets
в классе OscarUserAdmin
. Этот атрибут определяет группы полей, которые будут отображаться в административной панели.
class OscarUserAdmin(UserAdmin): fieldsets = UserAdmin.fieldsets + ( (None, {'fields': ('phone_number', 'address', )}), )
В этом примере мы добавляем поля phone_number
и address
в последнюю группу полей, которая будет отображаться в административной панели.
Кроме того, класс OscarUserAdmin
определяет методы для обработки различных событий, таких как сохранение или удаление объекта User. Вы можете переопределить эти методы, чтобы добавить дополнительную логику или кастомизированное поведение.
В итоге, после регистрации класса OscarUserAdmin
, вы сможете видеть и редактировать поля модели User в административной панели Django-Oscar. Вся кастомизация класса OscarUserAdmin
позволяет вам настроить отображение и поведение полей модели User в админке, чтобы она соответствовала вашим требованиям и бизнес-логике вашего проекта.