parent
6aa3acdd8c
commit
b9ef367c6d
5 changed files with 78 additions and 63 deletions
@ -1,27 +1,35 @@ |
||||
from django.db import models |
||||
from django.contrib.auth import get_user_model |
||||
from django.contrib.auth.models import AbstractUser, UserManager |
||||
|
||||
|
||||
User = get_user_model() |
||||
|
||||
|
||||
class LilcityUserManager(UserManager): |
||||
def create_user(self, username, email=None, password=None, **extra_fields): |
||||
user = super().create_user(username, email, password, **extra_fields) |
||||
LilcityUserSettings.objects.create(user=user) |
||||
return user |
||||
|
||||
|
||||
class LilcityUserProxy(User): |
||||
objects = LilcityUserManager() |
||||
|
||||
class Meta: |
||||
proxy = True |
||||
|
||||
|
||||
class LilcityUserSettings(models.Model): |
||||
user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='lilcity_user_settings') |
||||
is_verification_email = models.BooleanField(default=False) |
||||
facebook_id = models.PositiveIntegerField(null=True, blank=True, unique=True) |
||||
|
||||
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 = [] |
||||
|
||||
Loading…
Reference in new issue