from django.contrib.auth.models import AbstractBaseUser, PermissionsMixin from django.db import models from django.utils import timezone from django.utils.translation import gettext_lazy as _ from phone_field import PhoneField from address.models import AddressField from .managers import CustomUserManager class CustomUser(AbstractBaseUser, PermissionsMixin): email = models.EmailField(_("email address"), unique=True) is_staff = models.BooleanField(default=False, verbose_name='Персонал') is_active = models.BooleanField(default=True, verbose_name='Активный') date_joined = models.DateTimeField(_('date joined'), default=timezone.now) username = models.CharField(max_length=255, null=True, verbose_name='username') image = models.ImageField(upload_to='user/%Y/%m/%d', blank=True, null=True, verbose_name='Изображение') ipaddress=models.GenericIPAddressField(null=True) last_name=models.CharField(max_length=255, null=True,verbose_name='Фамилия') first_name=models.CharField(max_length=255,null=True,verbose_name='Имя') phone = PhoneField(blank=True,null=True, help_text='Контактный номер') USERNAME_FIELD = 'email' REQUIRED_FIELDS = [] objects = CustomUserManager() def __str__(self): return self.email class Meta: verbose_name = 'user', verbose_name_plural = 'Пользователь'