Django как сделать кастомную модель пользователя

Django custom user model как сделать на русском
Метки: / /

В этой статье разберём как сделать в Django custom user model, или на русском кастомную модель пользователя.

Ещё можете посмотреть статью «Django регистрация через RestAPI», там соответственно вы узнаете как сделать регистрацию используя кастомного пользователя Django.

Django модель пользователя создание:

Для создания модели пользователей в Django, нужно создать приложение, для посмотрите статью «Быстрый старт Django», там вы узнает как всё сделать.

После переходим в папку приложения и там открываем файл «models.py», в нём хранятся все модели и вот что в нём пишем.

В этой части кода мы пока только создаём специальный класс для создания новых пользователей, и наследуем его от класса BaseUserManager, также подключаем все нужные библиотеки.

Внутри класса MyUserManage, есть три метода, первый _create_user() это базовый метод который отвечает за создании пользователя, мы потом его будем использовать в остальных методах.

В метод мы передаём параметры email, username, password и **extra_fields, последний пожалуй самый интересный, он нам пригодится при создание суперпользователя, для добавления дополнительных параметров.

Внутри него уже идёт две проверки, есть ли Email и имя у пользователя, если да, то делаем пользователя, потом сохраняем пароль через user.set_password(), и сохраняем всего пользователя, возвращаем его.

Следующие метод нужен для создания обычного пользователя, внутри него мы используем метод созданный выше.

Потом делаем метод для создания суперпользователя, и там как раз добавляем дополнительные параметры, которые отвечают за права доступа.

В целом стоит сказать, что этот класс нам нужен только для создания админа, вот и всё.

После того как мы сделали это, можем приступить к созданию кастомной модели делаем это как и обычную модель, только наследуем его от двух других классов.

Как видите мы действительно наследуем от двух классов, вот они:

  • AbstractBaseUser — Базовый класс пользователя;
  • PermissionsMixin — Класс для прав доступа;

Внутри класса User, мы делаем несколько свойств, вот их список:

  • id — Идентификатор;
  • username — Логин или имя пользователя;
  • email — Электронная почта;
  • is_active — Поле статуса активации пользователя;
  • is_staff — Поле статуса админа;

Самое интересное на мой взгляд, это то, что для is_active значение по умолчанию True, это значит, что любой пользователь будет уже активирован по умолчанию, иначе надо будет делать подтверждение по email, но так как я делаю это на локальном сервере, у меня нет такой возможности.

После назначаем свойство USERNAME_FIELD которое отвечает за обращение к модели и REQUIRED_FIELDS, это список имён полей для суперпользователя.

Дальше добавляем методы из MyUserManager и создаём метод для __str__(), который отвечает за то, как будет отображаться в админ меню данные из модели.

В целом на этом всё закончилось, теперь сделает миграции, создайте админа и не много настрой не «admin.py» и всё, вот как это сделать.

Миuрации:

Создание админа:

admin.py:

Теперь вы можете спокойно работать с кастомной моделью пользователей.

Вывод:

В этой статье вы прочитали как сделать на Django custom user model, или на русском кастомную модель пользователя, думаю было интересно.

Подписываетесь на соц-сети:

Оценка:

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд
Количество оценивших: 4
Средняя оценка: 3,50
Загрузка...

Также рекомендую:

Подписаться
Уведомить о
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии