Advertisement
Guest User

Untitled

a guest
Apr 5th, 2016
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.70 KB | None | 0 0
  1. class UserManager(BaseUserManager):
  2.  
  3. def _create_user(self, username, email, password, is_staff, is_superuser, **extra_fields):
  4. now = timezone.now()
  5. if not username:
  6. raise ValueError(_('The given username must be set'))
  7. if not email:
  8. raise ValueError(_('The given email must be set'))
  9. email = self.normalize_email(email)
  10. user = self.model(
  11. username=username, email=email,
  12. is_staff=is_staff, is_active=False,
  13. is_superuser=is_superuser, last_login=now,
  14. date_joined=now, **extra_fields
  15. )
  16. user.set_password(password)
  17. user.save(using=self._db)
  18. return user
  19.  
  20. def create_user(self, username, email, password=None, **extra_fields):
  21. return self._create_user(username, email, password, False, False, **extra_fields)
  22.  
  23. def create_superuser(self, username, email, password, **extra_fields):
  24. user=self._create_user(username, email, password, True, True, **extra_fields)
  25. user.is_active=True
  26. user.save(using=self._db)
  27. return user
  28.  
  29. class User(AbstractBaseUser, PermissionsMixin):
  30. # Standard fields
  31. username = models.CharField(_('username'), max_length=30, unique=True,
  32. help_text=_('Required. 30 characters or fewer. Letters, numbers and @/./+/-/_ characters'),
  33. validators=[
  34. validators.RegexValidator(re.compile('^[w.@+-]+$'), _('Enter a valid username.'), _('invalid'))
  35. ])
  36. first_name = models.CharField(_('first name'), max_length=30, blank=True, null=True)
  37. last_name = models.CharField(_('last name'), max_length=30, blank=True, null=True)
  38. email = models.EmailField(_('email address'), max_length=255)
  39. is_staff = models.BooleanField(_('staff status'), default=False,
  40. help_text=_('Designates whether the user can log into this admin site.'))
  41. is_active = models.BooleanField(_('active'), default=True,
  42. help_text=_('Designates whether this user should be treated as active. Unselect this instead of deleting accounts.'))
  43. date_joined = models.DateTimeField(_('date joined'), default=timezone.now)
  44.  
  45. # Custom fields
  46. is_publisher = models.BooleanField(_('publisher status'), default=False)
  47.  
  48. # User manager
  49. objects = UserManager()
  50.  
  51. USERNAME_FIELD = 'username'
  52. REQUIRED_FIELDS = ['email']
  53.  
  54. class Meta:
  55. verbose_name = _('user')
  56. verbose_name_plural = _('users')
  57.  
  58. def get_full_name(self):
  59. full_name = '%s %s' % (self.first_name, self.last_name)
  60. return full_name.strip()
  61.  
  62. def get_short_name(self):
  63. return self.first_name
  64.  
  65. def email_user(self, subject, message, from_email=None):
  66. send_mail(subject, message, from_email, [self.email])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement