Guest User

models.py

a guest
Mar 22nd, 2016
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.59 KB | None | 0 0
  1. from django.contrib.auth.models import AbstractBaseUser, BaseUserManager
  2. from django.db import models
  3.  
  4.  
  5. class AccountManager(BaseUserManager):
  6.     def create_user(self, email, password=None, **kwargs):
  7.         if not email:
  8.             raise ValueError('User must have a valid email address.')
  9.  
  10.         if not kwargs.get('username'):
  11.             raise ValueError('User must have a valid username.')
  12.  
  13.         user = self.model(
  14.             email=self.normalize_email(email),
  15.             username=kwargs.get('username')
  16.         )
  17.  
  18.         user.set_password(password)
  19.         user.save()
  20.  
  21.         return user
  22.  
  23.     def create_superuser(self, email, password, **kwargs):
  24.         user = self.create_user(email, password, **kwargs)
  25.  
  26.         user.is_admin = True
  27.         user.save()
  28.  
  29.         return user
  30.  
  31.  
  32. class Account(AbstractBaseUser):
  33.     email = models.EmailField(unique=True)
  34.     username = models.CharField(max_length=40, unique=True)
  35.  
  36.     first_name = models.CharField(max_length=40, blank=True)
  37.     last_name = models.CharField(max_length=40, blank=True)
  38.     status = models.CharField(max_length=100, blank=True)
  39.  
  40.     is_admin = models.BooleanField(default=False)
  41.  
  42.     created_at = models.DateTimeField(auto_now_add=True)
  43.     updated_at = models.DateTimeField(auto_now=True)
  44.  
  45.     objects = AccountManager()
  46.     USERNAME_FIELD = 'email'
  47.     REQUIRED_FIELDS = ['username']
  48.  
  49.     def __unicode__(self):
  50.         return self.email
  51.  
  52.     def get_full_name(self):
  53.         return '%s %s' % (self.last_name, self.first_name)
  54.  
  55.     def get_short_name(self):
  56.         return self.first_name
Add Comment
Please, Sign In to add comment