Django AbstractUser: как расширить пользовательскую модель

Привет, ребята, это всего лишь краткий обзор того, как расширить пользовательскую модель Django по умолчанию с помощью класса AbstractUser. По сути, вы можете расширить пользовательскую модель Django по умолчанию, фактически не заменяя свою собственную пользовательскую модель. Это делается с помощью поля «один к одному» для модели пользователя по умолчанию.

из django.contrib.auth.models импортировать пользователя

class MyUser(models.Model):
user = models.OnetoOneField(User, ondelete= models.cacade)

Это должно быть намного лучше и быстрее, если вам не нужно менять то, что хранится в данных, возможно, вам просто нужно добавить больше полей или изменить порядок. Вы можете просто создать прокси-модель на основе класса Django contrib.auth.models.User. Это позволяет вам по-прежнему сохранять его функции, такие как пользовательские менеджеры, порядок по умолчанию и модели.
Сегодня мы покажем вам, как использовать класс AbstractUser, который можно использовать, когда модель пользователя Django по умолчанию не подходит для требованиям вашего проекта.
Для начала давайте сначала создадим наш проект, используя

cd // в папку, в которой вы хотите разместить ваше приложение, и откройте командную строку
django-admin startproject App
cd app
python manage.py startapp user
python manage .py сервер запуска

Первая строка создает проект в выбранной папке, вам нужно войти в приложение, чтобы получить доступ к команде manage.py, которая будет использоваться для создания дополнительных приложений во второй строке.
Наконец, запустите свой сервер. для запуска приложения

в user/models.py

из django.contrib.auth.models импортировать AbstractUser

член класса (AbstractUser):
пройти

Во-первых, вам нужно импортировать класс AbstractUser.
Создайте свой пользовательский класс (здесь класс Member) и наследуйте его от класса AbstractUser. Я просто использовал проход здесь на данный момент.

в app/settings.py добавьте

AUTH_USER_MODEL = myapp.MyUser

Это необходимо, так как вы сообщаете своему приложению, что будете использовать настраиваемую модель пользователя
Также добавьте пользовательское приложение в список приложений в settings.py.

Также зарегистрируйте модель в admin.py приложения:

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from .models import User
admin.site.register(User, UserAdmin)

Вот и все, теперь вы можете добавлять в свою модель Member поля, которых нет в стандартной модели Django. Затем запустите миграцию с помощью

python manage.py migrate
создать суперпользователя
python manage.py createsuperuser

Затем перейдите на сайт администратора, чтобы проверить свои данные.
Спасибо за прочтение.