Как джанго-оскар прокидывает модель User в админку?

В 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 в админке, чтобы она соответствовала вашим требованиям и бизнес-логике вашего проекта.