sanchit24

Untitled

Mar 21st, 2016
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.40 KB | None | 0 0
  1. class CustomUserManager(BaseUserManager):
  2.  
  3. def _create_user(self, username, email, password,
  4. is_staff, is_superuser, **extra_fields):
  5. """
  6. Creates and saves a User with the given username, email and password.
  7. """
  8. if not username:
  9. raise ValueError('The given username must be set')
  10. email = self.normalize_email(email)
  11. user = self.model(username=username, email=email,
  12. is_staff=is_staff, is_active=True,
  13. is_superuser=is_superuser, **extra_fields)
  14. user.set_password(password)
  15. user.save(using=self._db)
  16. return user
  17.  
  18. def create_user(self, username, email=None, password=None,
  19. **extra_fields):
  20. return self._create_user(username, email, password, False, False,
  21. **extra_fields)
  22.  
  23. def create_superuser(self, username, email, password, **extra_fields):
  24. return self._create_user(username, email, password, True, True,
  25. **extra_fields)
  26.  
  27.  
  28. def myoverridenmeta(name, bases, adict):
  29. newClass = type(name, bases, adict)
  30. for field in newClass._meta.fields:
  31. if field.attname == 'last_login':
  32. field.column = 'lastlogin'
  33. field.db_column = 'lastlogin'
  34. return newClass
  35.  
  36.  
  37. class UserProfile(AbstractBaseUser):
  38.  
  39. class Meta:
  40. """
  41. meta class for user role, defining ordering and db table name
  42. """
  43. ordering = ["name"]
  44. db_table = 'user'
  45.  
  46. username = models.CharField(max_length=254, unique=True)
  47. name = models.CharField(max_length=254, blank=True)
  48. email = models.EmailField(blank=True, unique=True)
  49. createdon = models.DateTimeField(auto_now_add=True)
  50. updatedon = models.DateTimeField(auto_now=True)
  51. is_active = models.BooleanField(default=True, db_column='status')
  52. is_admin = models.BooleanField(default=False, db_column='isadmin')
  53. is_staff = models.BooleanField(default=False, db_column='isstaff')
  54. is_superuser = models.BooleanField(default=False, db_column='issuperuser')
  55.  
  56. USERNAME_FIELD = 'username'
  57. REQUIRED_FIELDS = ['email']
  58.  
  59. objects = CustomUserManager()
  60.  
  61. def get_full_name(self):
  62. return self.username
  63.  
  64. def get_short_name(self):
  65. return self.username
  66.  
  67. __metaclass__ = myoverridenmeta
Add Comment
Please, Sign In to add comment