init
This commit is contained in:
83
AuthApp/models.py
Normal file
83
AuthApp/models.py
Normal file
@@ -0,0 +1,83 @@
|
||||
# coding=utf-8
|
||||
from __future__ import unicode_literals
|
||||
from django.contrib.auth.models import User
|
||||
from django.db import models
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from django.db.models.signals import post_save, pre_save
|
||||
from django.contrib.contenttypes.fields import GenericRelation
|
||||
from BaseModels.base_models import BaseModel
|
||||
from datetime import datetime
|
||||
from django.conf import settings
|
||||
|
||||
|
||||
|
||||
|
||||
def user_name_str(self):
|
||||
return f'{self.last_name} {self.first_name}'
|
||||
|
||||
|
||||
User.add_to_class("__str__", user_name_str)
|
||||
|
||||
|
||||
class UserProfile(BaseModel):
|
||||
|
||||
user = models.OneToOneField(User, verbose_name=_('Пользователь'), related_name=u'user_profile',
|
||||
null=True, blank=True, on_delete=models.CASCADE)
|
||||
|
||||
UI_lang = models.CharField(max_length=2, verbose_name=_('Язык интерфейса'), choices=settings.LANGUAGES)
|
||||
|
||||
nick_name = models.CharField(max_length=250, verbose_name=_('Псевдоним'), null=True, blank=True)
|
||||
|
||||
authCode = models.CharField(max_length=32, null=True, blank=True)
|
||||
|
||||
phone = models.CharField(max_length=100, verbose_name=_('Телефон'), null=True, blank=True)
|
||||
|
||||
birthdate = models.DateField(verbose_name=_(u'Дата рождения'), null=True, blank=True)
|
||||
|
||||
comment = models.TextField(verbose_name=_('Комментарий'), null=True, blank=True)
|
||||
|
||||
referal_link = models.TextField(verbose_name=_('Реферальная ссылка'))
|
||||
balance = models.FloatField(verbose_name=_('Баланс'), default=0)
|
||||
questions_count = models.IntegerField(verbose_name=_('Задано вопросов'), default=0)
|
||||
answer_success_count = models.IntegerField(verbose_name=_('Успешных ответов'), default=0)
|
||||
|
||||
|
||||
def __str__(self):
|
||||
if self.user:
|
||||
return '{0} {1}'.format(self.user.last_name, self.user.first_name)
|
||||
else:
|
||||
return str(self.id)
|
||||
|
||||
|
||||
class Meta:
|
||||
permissions = (
|
||||
|
||||
)
|
||||
|
||||
verbose_name = _('Профиль')
|
||||
verbose_name_plural = _('Профили')
|
||||
ordering = ('user__last_name', 'user__first_name')
|
||||
|
||||
|
||||
|
||||
# @receiver(post_save, sender=User)
|
||||
def create_user_profile(sender, instance, created, **kwargs):
|
||||
if created:
|
||||
UserProfile.objects.create(user=instance)
|
||||
|
||||
|
||||
post_save.connect(create_user_profile, sender=User, dispatch_uid='post_save_connect')
|
||||
|
||||
|
||||
# @receiver(pre_save, sender=User)
|
||||
def preSaveUser(sender, instance, **kwargs):
|
||||
if not instance.email:
|
||||
instance.email = str(instance.username).lower()
|
||||
|
||||
try:
|
||||
instance.user_profile.modifiedDT = datetime.now()
|
||||
except:
|
||||
pass
|
||||
|
||||
|
||||
pre_save.connect(preSaveUser, sender=User, dispatch_uid='pre_save_connect')
|
||||
Reference in New Issue
Block a user