You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
1.5 KiB
35 lines
1.5 KiB
from django.db import models
|
|
from django.contrib.auth.models import AbstractUser, UserManager
|
|
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('Верифицирован по email', default=False)
|
|
|
|
USERNAME_FIELD = 'email'
|
|
REQUIRED_FIELDS = ['username']
|
|
|