Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from django.db import models
- from django.utils import timezone
- from phonenumber_field.modelfields import PhoneNumberField
- from django.contrib.auth.models import PermissionsMixin
- from django.contrib.auth.models import(
- AbstractBaseUser,
- BaseUserManager
- )
- now = timezone.now()
- class UserManager(BaseUserManager):
- def _create_user(self, username, password, email, first_name, last_name, **extra_fields):
- if not username:
- raise ValueError('User must have a username.')
- else:
- username = username.lower()
- if not password:
- raise ValueError('Password required!')
- if not email:
- raise ValueError('Email required!')
- else:
- email = self.normalize_email(email)
- user = self.model(
- username = username,
- email = email,
- first_name = first_name,
- last_name = last_name,
- is_active = True
- )
- UserManager
- user.set_password(password)
- user.save(using = self._db)
- return user
- def create_user(self, username, password, email, first_name, last_name, **extra_fields):
- extra_fields.setdefault('is_staff', False)
- extra_fields.setdefault('is_superuser', False)
- return self._create_user(
- username = username,
- password = password,
- email = email,
- first_name = first_name,
- last_name = last_name,
- is_active = True,
- **extra_fields
- )
- def create_superuser(self, username, password, email, first_name, last_name, **extra_fields):
- extra_fields.setdefault('is_staff', True)
- extra_fields.setdefault('is_superuser', True)
- return self._create_user(
- username = username,
- password = password,
- email = email,
- first_name = first_name,
- last_name = last_name,
- # is_active = True,
- #is_superuser = True,
- is_active = True,
- **extra_fields,
- )
- class User(AbstractBaseUser, PermissionsMixin ):
- username = models.CharField(max_length = 28, unique = True)
- email = models.EmailField("Enter E-mail",unique = True)
- first_name = models.CharField("Enter First name", max_length = 25)
- last_name = models.CharField("Enter Last name", max_length = 25)
- phone_number = PhoneNumberField()
- created = models.DateTimeField(auto_now_add=now)
- is_active = models.BooleanField(default = True)
- is_superuser = models.BooleanField(default = False)
- is_staff = models.BooleanField(default = False)
- object = UserManager()
- USERNAME_FIELD = 'username'
- REQUIRED_FIELDS = ['first_name', 'last_name', 'email']
- def __str__(self):
- return self.first_name
- def get_username(self):
- return self.username
- def get_full_name(self):
- return self.first_name+ ' '+self.last_name
- def get_short_name(self):
- return self.last_name
- def has_perms(self, perm, obj=None):
- return True
- def has_module_perms(self, app_lable):
- return True
- @property
- def active(self):
- return self.is_active
- @property
- def superuser(self):
- return self.is_superuser
- @property
- def staff(self):
- return self.is_staff
- on_delete=models.CASCADE,
- class Car(models.Model):
- manufacturer = models.ForeignKey('Manufacturer', on_delete=models.CASCADE,)
Add Comment
Please, Sign In to add comment