Guest User

Untitled

a guest
Aug 13th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.48 KB | None | 0 0
  1. from django.contrib.auth.models import User
  2.  
  3. User._meta.get_field('username')._unique = False
  4.  
  5. class AppUser(User):
  6. username = models.CharField...
  7. organization = models.CharField...
  8.  
  9. from django.contrib.auth.models import AbstractUser
  10. from django.contrib.auth.models import PermissionsMixin
  11.  
  12. # Custom model for User
  13. class User(AbstractBaseUser, PermissionsMixin):
  14.  
  15. first_name = models.CharField(max_length=100, blank=False)
  16. last_name = models.CharField(max_length=100, blank=True)
  17. password = models.CharField(max_length=255, blank=False)
  18. email = models.EmailField(max_length=255, blank=False)
  19. mobile = models.CharField(max_length=12)
  20. user_type = models.ForeignKey(UserTypes, on_delete=models.DO_NOTHING)
  21. is_approved = models.BooleanField(default=False)
  22.  
  23. objects = UserManager()
  24. # Here's the Catch
  25. USERNAME_FIELD = 'id'
  26.  
  27. def get_full_name(self):
  28. '''
  29. Returns the first_name plus the last_name, with a space in between.
  30. '''
  31. full_name = '%s %s' % (self.first_name, self.last_name)
  32. return full_name.strip()
  33.  
  34. def get_short_name(self):
  35. '''
  36. Returns the short name for the user.
  37. '''
  38. return self.first_name
  39.  
  40. def email_user(self, subject, message, from_email=None, **kwargs):
  41. '''
  42. Sends an email to this User.
  43. '''
  44. send_mail(subject, message, from_email, [self.email], **kwargs)
  45.  
  46. class Meta:
  47. db_table = 'user'
  48.  
  49. from django.contrib.auth.base_user import BaseUserManager
  50.  
  51.  
  52. class UserManager(BaseUserManager):
  53. use_in_migrations = True
  54.  
  55. def _create_user(self, email, password, **extra_fields):
  56. """
  57. Creates and saves a User with the given email and password.
  58. """
  59. if not email:
  60. raise ValueError('The given email must be set')
  61. email = self.normalize_email(email)
  62. user = self.model(email=email, **extra_fields)
  63. user.set_password(password)
  64. user.save(using=self._db)
  65. return user
  66.  
  67. def create_user(self, email, password=None, **extra_fields):
  68. extra_fields.setdefault('is_superuser', False)
  69. return self._create_user(email, password, **extra_fields)
  70.  
  71. def create_superuser(self, email, password, **extra_fields):
  72. extra_fields.setdefault('is_superuser', True)
  73.  
  74. if extra_fields.get('is_superuser') is not True:
  75. raise ValueError('Superuser must have is_superuser=True.')
  76.  
  77. return self._create_user(email, password, **extra_fields)
Add Comment
Please, Sign In to add comment