Guest User

Untitled

a guest
Jul 12th, 2018
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.65 KB | None | 0 0
  1. `class MyUserManager(BaseUserManager):
  2. def create_user(self, email,
  3. first_name,last_name,profile_picture,phone_no,password=None):
  4. """
  5. Creates and saves a User with the given email and password.
  6. """
  7. if not email:
  8. raise ValueError('Users must have an email address')
  9.  
  10. user = self.model(
  11. email=self.normalize_email(email),
  12. first_name=first_name,
  13. last_name=last_name,
  14. profile_picture=profile_picture,
  15. phone_no=phone_no,
  16. )
  17.  
  18. user.set_password(password)
  19. user.save(using=self._db)
  20. return user
  21.  
  22.  
  23.  
  24. def create_superuser(self, email, password):
  25. """
  26. Creates and saves a superuser with the given email and password.
  27. """
  28. SuperUser = self.create_user(
  29. email,
  30. password=password,
  31. )
  32. SuperUser.staff = True
  33. SuperUser.admin = True
  34. SuperUser.save(using=self._db)
  35. return SuperUser
  36.  
  37. class MyUser(AbstractBaseUser):
  38. email = models.EmailField(
  39. verbose_name = 'email_address',
  40. max_length=255,
  41. unique=True,
  42. # validators=email_validator,
  43. )
  44. first_name = models.CharField(max_length=20,blank=False,null=False)
  45. last_name = models.CharField(max_length=20,blank=False,null=False)
  46. phone_regex = RegexValidator(regex=r'^+?1?d{9,15}$', message="Phone number
  47. must be entered in the format: '+254 ...'")
  48. phone_no = models.CharField(validators=[phone_regex], max_length=17,
  49. blank=False)
  50. profile_picture = models.ImageField(upload_to='media/',blank=False)
  51. #email_validator = EmailValidator(message='Invalid email
  52. address',code=None,whitelist=None)
  53.  
  54. is_active = models.BooleanField(default=True)
  55. is_staff = models.BooleanField(default=False)
  56. is_admin = models.BooleanField(default=False)
  57.  
  58. objects = MyUserManager()
  59.  
  60. USERNAME_FIELD = 'email'
  61. REQUIRED_FIELDS = ['first_name','last_name','phone_no','profile_picture']
  62. # Email & Password are required by default
  63. def get_full_name(self):
  64. return self.email
  65. def get_short_name():
  66. return self.email
  67. def __str__(self):
  68. return self.email
  69. def has_perm(self,perm,obj=None):
  70. #does user have a specific permission
  71. return True
  72. def has_module_pers(self,app_label):
  73. #does user have permissions to view the app 'app_label'
  74. return True
  75. @property
  76. def is_admin(self):
  77. return self.is_admin
  78. @property
  79. def is_active(self):
  80. return self.is_active
  81.  
  82.  
  83. # hook in the New Manager to our Model
  84. class MyUser(AbstractBaseUser):
  85. ...
  86. objects = MyUserManager()
  87. `
Add Comment
Please, Sign In to add comment