Guest User

Untitled

a guest
Aug 15th, 2018
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.43 KB | None | 0 0
  1. from django.db import models
  2. from django.utils import timezone
  3. from phonenumber_field.modelfields import PhoneNumberField
  4. from django.contrib.auth.models import PermissionsMixin
  5. from django.contrib.auth.models import(
  6. AbstractBaseUser,
  7. BaseUserManager
  8. )
  9.  
  10. now = timezone.now()
  11.  
  12. class UserManager(BaseUserManager):
  13. def _create_user(self, username, password, email, first_name, last_name, **extra_fields):
  14. if not username:
  15. raise ValueError('User must have a username.')
  16. else:
  17. username = username.lower()
  18. if not password:
  19. raise ValueError('Password required!')
  20. if not email:
  21. raise ValueError('Email required!')
  22. else:
  23. email = self.normalize_email(email)
  24.  
  25. user = self.model(
  26. username = username,
  27. email = email,
  28. first_name = first_name,
  29. last_name = last_name,
  30. is_active = True
  31. )
  32. UserManager
  33. user.set_password(password)
  34. user.save(using = self._db)
  35. return user
  36.  
  37. def create_user(self, username, password, email, first_name, last_name, **extra_fields):
  38. extra_fields.setdefault('is_staff', False)
  39. extra_fields.setdefault('is_superuser', False)
  40. return self._create_user(
  41. username = username,
  42. password = password,
  43. email = email,
  44. first_name = first_name,
  45. last_name = last_name,
  46. is_active = True,
  47. **extra_fields
  48. )
  49.  
  50. def create_superuser(self, username, password, email, first_name, last_name, **extra_fields):
  51. extra_fields.setdefault('is_staff', True)
  52. extra_fields.setdefault('is_superuser', True)
  53. return self._create_user(
  54. username = username,
  55. password = password,
  56. email = email,
  57. first_name = first_name,
  58. last_name = last_name,
  59. # is_active = True,
  60. #is_superuser = True,
  61. is_active = True,
  62. **extra_fields,
  63. )
  64.  
  65.  
  66. class User(AbstractBaseUser, PermissionsMixin ):
  67.  
  68. username = models.CharField(max_length = 28, unique = True)
  69. email = models.EmailField("Enter E-mail",unique = True)
  70. first_name = models.CharField("Enter First name", max_length = 25)
  71. last_name = models.CharField("Enter Last name", max_length = 25)
  72. phone_number = PhoneNumberField()
  73. created = models.DateTimeField(auto_now_add=now)
  74. is_active = models.BooleanField(default = True)
  75. is_superuser = models.BooleanField(default = False)
  76. is_staff = models.BooleanField(default = False)
  77.  
  78. object = UserManager()
  79. USERNAME_FIELD = 'username'
  80. REQUIRED_FIELDS = ['first_name', 'last_name', 'email']
  81.  
  82.  
  83. def __str__(self):
  84. return self.first_name
  85.  
  86. def get_username(self):
  87. return self.username
  88.  
  89. def get_full_name(self):
  90. return self.first_name+ ' '+self.last_name
  91.  
  92. def get_short_name(self):
  93. return self.last_name
  94.  
  95. def has_perms(self, perm, obj=None):
  96. return True
  97.  
  98. def has_module_perms(self, app_lable):
  99. return True
  100.  
  101. @property
  102. def active(self):
  103. return self.is_active
  104.  
  105. @property
  106. def superuser(self):
  107. return self.is_superuser
  108. @property
  109. def staff(self):
  110. return self.is_staff
  111.  
  112. on_delete=models.CASCADE,
  113.  
  114. class Car(models.Model):
  115. manufacturer = models.ForeignKey('Manufacturer', on_delete=models.CASCADE,)
Add Comment
Please, Sign In to add comment