models.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. from django.contrib.gis.db import models
  2. from django.contrib.auth.models import AbstractUser
  3. from django.dispatch import Signal
  4. from .utilities import send_activation_notification
  5. from django.contrib.auth.validators import UnicodeUsernameValidator
  6. class AdvUser(AbstractUser):
  7. """Расширенная модель юзера"""
  8. #Заменил поле логина на пользовательское
  9. username_validator = UnicodeUsernameValidator()
  10. username = models.CharField(
  11. ('Логин'),
  12. max_length=150,
  13. unique=True,
  14. help_text=('Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.'),
  15. validators=[username_validator],
  16. error_messages={
  17. 'unique': ("A user with that username already exists."),
  18. },
  19. )
  20. middle_name = models.CharField(
  21. max_length=40,
  22. verbose_name='Отчество',
  23. default='')
  24. is_activated = models.BooleanField(
  25. default=True,
  26. db_index=True,
  27. verbose_name='Прошел активацию?')
  28. class Meta(AbstractUser.Meta):
  29. pass
  30. user_registrated = Signal(providing_args=['instance'])
  31. def user_registrated_dispatcher(sender, **kwargs):
  32. send_activation_notification(kwargs['instance'])
  33. user_registrated.connect(user_registrated_dispatcher)