Advertisement
Guest User

Untitled

a guest
Aug 3rd, 2016
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.42 KB | None | 0 0
  1. models.py
  2.  
  3.  
  4. from django.db import models
  5. from django.contrib.auth.models import (
  6. BaseUserManager, AbstractBaseUser
  7. )
  8.  
  9.  
  10. class ProfileManager(BaseUserManager):
  11. def create_user(self, email, city, MyUsername, phone, first_name, last_name, address, gender, birth_date, info, avatar, password=None):
  12. if not email:
  13. raise ValueError('Users must have an email address')
  14.  
  15. user = self.model(
  16. email=self.normalize_email(email),
  17. password=password,
  18. city=city,
  19. MyUsername=MyUsername,
  20. phone=phone,
  21. first_name=first_name,
  22. last_name=last_name,
  23. address=address,
  24. gender=gender,
  25. birth_date=birth_date,
  26. info=info,
  27. avatar=avatar
  28. )
  29. user.set_password(password)
  30. user.save(using=self._db)
  31. return user
  32.  
  33. def create_superuser(self, email, city, MyUsername, phone, first_name, last_name, address, gender, birth_date, info, avatar, password=None):
  34. user = self.create_user(
  35. email=self.normalize_email(email),
  36. password=password,
  37. city=city,
  38. MyUsername=MyUsername,
  39. phone=phone,
  40. first_name=first_name,
  41. last_name=last_name,
  42. address=address,
  43. gender=gender,
  44. birth_date=birth_date,
  45. info=info,
  46. avatar=avatar
  47. )
  48. user.is_admin = True
  49. user.save(using=self._db)
  50. return user
  51.  
  52.  
  53. class Profile(AbstractBaseUser):
  54. email = models.EmailField(
  55. verbose_name='email address',
  56. max_length=255,
  57. unique=True,
  58. )
  59. city = models.CharField(max_length=100)
  60. is_active = models.BooleanField(default=True)
  61. is_admin = models.BooleanField(default=False)
  62. MyUsername = models.CharField(max_length=255, unique=True)
  63. phone = models.CharField(max_length=20, null=False)
  64. first_name = models.CharField(max_length=255, null=False)
  65. last_name = models.CharField(max_length=255, null=False)
  66. address = models.CharField(max_length=255, null=False)
  67. gender = models.BooleanField(null=False)
  68. birth_date = models.DateField(null=False)
  69. info = models.TextField(null=True)
  70. avatar = models.ImageField(upload_to='avatars/', null=True)
  71.  
  72. object = ProfileManager()
  73.  
  74. USERNAME_FIELD = 'email'
  75. REQUIRED_FIELDS = [
  76. 'MyUsername'
  77. ]
  78.  
  79. def get_full_name(self):
  80. return self.email
  81.  
  82. def get_short_name(self):
  83. return self.email
  84.  
  85. def __str__(self):
  86. return self.email
  87.  
  88. def has_perm(self, perm, obj=None):
  89. "Does the user have a specific permission?"
  90. return True
  91.  
  92. def has_module_perms(self, app_label):
  93. "Does the user have permissions to view the app `app_label`?"
  94. return True
  95.  
  96. @property
  97. def is_staff(self):
  98. """Is the user a member of staff?"""
  99. return self.is_admin
  100.  
  101. from registration.forms import RegistrationForm
  102. from user_registration.models import Profile
  103.  
  104.  
  105. class MyCustomUserForm(RegistrationForm):
  106. class Meta:
  107. model = Profile
  108. fields = [
  109. Profile.USERNAME_FIELD,
  110. 'email',
  111. 'password1',
  112. 'password2',
  113. 'city',
  114. 'MyUsername',
  115. 'phone',
  116. 'first_name',
  117. 'last_name',
  118. 'address',
  119. 'gender',
  120. 'birth_date',
  121. 'info',
  122. 'avatar',
  123. ]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement