Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- `class MyUserManager(BaseUserManager):
- def create_user(self, email,
- first_name,last_name,profile_picture,phone_no,password=None):
- """
- Creates and saves a User with the given email and password.
- """
- if not email:
- raise ValueError('Users must have an email address')
- user = self.model(
- email=self.normalize_email(email),
- first_name=first_name,
- last_name=last_name,
- profile_picture=profile_picture,
- phone_no=phone_no,
- )
- user.set_password(password)
- user.save(using=self._db)
- return user
- def create_superuser(self, email, password):
- """
- Creates and saves a superuser with the given email and password.
- """
- SuperUser = self.create_user(
- email,
- password=password,
- )
- SuperUser.staff = True
- SuperUser.admin = True
- SuperUser.save(using=self._db)
- return SuperUser
- class MyUser(AbstractBaseUser):
- email = models.EmailField(
- verbose_name = 'email_address',
- max_length=255,
- unique=True,
- # validators=email_validator,
- )
- first_name = models.CharField(max_length=20,blank=False,null=False)
- last_name = models.CharField(max_length=20,blank=False,null=False)
- phone_regex = RegexValidator(regex=r'^+?1?d{9,15}$', message="Phone number
- must be entered in the format: '+254 ...'")
- phone_no = models.CharField(validators=[phone_regex], max_length=17,
- blank=False)
- profile_picture = models.ImageField(upload_to='media/',blank=False)
- #email_validator = EmailValidator(message='Invalid email
- address',code=None,whitelist=None)
- is_active = models.BooleanField(default=True)
- is_staff = models.BooleanField(default=False)
- is_admin = models.BooleanField(default=False)
- objects = MyUserManager()
- USERNAME_FIELD = 'email'
- REQUIRED_FIELDS = ['first_name','last_name','phone_no','profile_picture']
- # Email & Password are required by default
- def get_full_name(self):
- return self.email
- def get_short_name():
- return self.email
- def __str__(self):
- return self.email
- def has_perm(self,perm,obj=None):
- #does user have a specific permission
- return True
- def has_module_pers(self,app_label):
- #does user have permissions to view the app 'app_label'
- return True
- @property
- def is_admin(self):
- return self.is_admin
- @property
- def is_active(self):
- return self.is_active
- # hook in the New Manager to our Model
- class MyUser(AbstractBaseUser):
- ...
- objects = MyUserManager()
- `
Add Comment
Please, Sign In to add comment