from django.db import models from django.contrib.auth.models import AbstractUser from django.contrib.postgres import fields as pgfields from django.utils.translation import gettext_lazy as _ class User(AbstractUser): ROLE_CHOICES = ( (0, 'пользователь'), (1, 'автор'), (2, 'администратор'), ) GENDER_CHOICES = ( ('n', 'не указан'), ('m', 'Мужчина'), ('f', 'Женщина'), ) email = models.EmailField(_('email address'), unique=True) role = models.PositiveSmallIntegerField(default=0, choices=ROLE_CHOICES) gender = models.CharField(max_length=1, choices=GENDER_CHOICES) country = models.CharField(max_length=50, default='') city = models.CharField(max_length=85, default='') about = models.CharField(max_length=1000, default='') instagram = models.URLField(default='') facebook = models.URLField(default='') twitter = models.URLField(default='') pinterest = models.URLField(default='') youtube = models.URLField(default='') vkontakte = models.URLField(default='') fb_id = models.PositiveIntegerField(null=True, blank=True, unique=True) fb_data = pgfields.JSONField(default={}) is_email_proved = models.BooleanField(default=False) USERNAME_FIELD = 'email' REQUIRED_FIELDS = []