# DRF Rack # Библиотека классов расширений для Django REST Framework # # Автор: Николай В. Анохин # Все права защищены. Лицензия: MIT """ Описание класса Account """ from django.contrib.auth.models import AbstractUser from django.db import models from django.utils.translation import gettext_lazy as _ from net.xeaf.rack.models.mixins import CreatedAtMixin from net.xeaf.rack.models.mixins import DeletedAtMixin from net.xeaf.rack.models.mixins import DescriptionMixin from net.xeaf.rack.models.mixins import UpdatedAtMixin from net.xeaf.rack.models.mixins import UuidIdMixin class AccountModel(AbstractUser, UuidIdMixin, CreatedAtMixin, UpdatedAtMixin, DeletedAtMixin, DescriptionMixin, ): """ Модель Аккаунта пользователя """ first_name = None """ Удаляем поле Имя """ last_name = None """ Удаляем поле Фамилия """ date_joined = None """ Удаляем поле Дата регистрации """ username = models.EmailField( null=False, default=None, blank=False, verbose_name=_("rack.models.account.username"), ) """ Имя пользователя """ nick_name = models.CharField( null=True, max_length=32, blank=True, verbose_name=_("rack.models.account.nick_name"), ) """ Псевдоним """ full_name = models.CharField( null=True, max_length=127, blank=True, verbose_name=_("rack.models.account.full_name"), ) """ Полное имя пользователя """ joined_at = models.DateTimeField( null=True, default=None, blank=True, verbose_name=_("rack.models.account.joined_at"), ) """ Дата и время завершения регистрации """ last_login = models.DateTimeField( null=True, default=None, blank=True, verbose_name=_("rack.models.account.last_login"), ) """ Дата и время последнего входа """ extra = models.JSONField( null=False, default={}, blank=False, verbose_name=_("rack.models.account.extra"), ) """ Дополнительная информация """ def get_full_name(self): """ Возвращает полное имя пользователя, требуется для совместимости """ return self.full_name def get_short_name(self): """ Возвращает краткое имя пользователя требуется для совместимости """ return self.nick_name class Meta: """ Параметры конфигурации класса """ # Уникальность constraints = [ models.UniqueConstraint( fields=["username"], name="unique_account_username" ) ] # Данные таблицы db_table = "rack_accounts" verbose_name = _("rack.models.account") verbose_name_plural = _("rack.models.account_plural")