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.
 
 
 
 
 
 

36 lines
1.6 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)
photo = models.ImageField('Фото', null=True, blank=True, upload_to='users')
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = ['username']