Guest User

Untitled

a guest
Dec 17th, 2018
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.26 KB | None | 0 0
  1. AUTH_USER_MODEL = "myapp.User"
  2.  
  3. from __future__ import unicode_literals
  4. from django.db import models
  5.  
  6. from django.db import models
  7. from django.utils import timezone
  8. from django.contrib.auth.models import (
  9. AbstractBaseUser, PermissionsMixin
  10. )
  11.  
  12. from django.contrib.auth.models import (
  13. AbstractBaseUser, PermissionsMixin, BaseUserManager
  14. )
  15.  
  16.  
  17. class UserManager(BaseUserManager):
  18.  
  19. def _create_user(self, email, password, **extra_fields):
  20. """
  21. Creates and saves a User with the given email,and password.
  22. """
  23. if not email:
  24. raise ValueError('The given email must be set')
  25. try:
  26. with transaction.atomic():
  27. user = self.model(email=email, **extra_fields)
  28. user.set_password(password)
  29. user.save(using=self._db)
  30. return user
  31. except:
  32. raise
  33.  
  34. def create_user(self, email, password=None, **extra_fields):
  35. extra_fields.setdefault('is_staff', False)
  36. extra_fields.setdefault('is_superuser', False)
  37. return self._create_user(email, password, **extra_fields)
  38.  
  39. def create_superuser(self, email, password, **extra_fields):
  40. extra_fields.setdefault('is_staff', True)
  41. extra_fields.setdefault('is_superuser', True)
  42.  
  43. return self._create_user(email, password=password, **extra_fields)
  44.  
  45.  
  46. class User(AbstractBaseUser, PermissionsMixin):
  47. """
  48. An abstract base class implementing a fully featured User model with
  49. admin-compliant permissions.
  50.  
  51. """
  52. email = models.EmailField(max_length=40, unique=True)
  53. first_name = models.CharField(max_length=30, blank=True)
  54. last_name = models.CharField(max_length=30, blank=True)
  55. is_active = models.BooleanField(default=True)
  56. is_staff = models.BooleanField(default=False)
  57. date_joined = models.DateTimeField(default=timezone.now)
  58.  
  59. objects = UserManager()
  60.  
  61. USERNAME_FIELD = 'email'
  62. REQUIRED_FIELDS = ['first_name', 'last_name']
  63.  
  64. def save(self, *args, **kwargs):
  65. super(User, self).save(*args, **kwargs)
  66. return self
  67.  
  68. AUTH_USER_MODEL = "myapp.User"
  69.  
  70. in resolve_related_fields
  71. raise ValueError('Related model %r cannot be resolved' % self.remote_field.model)
  72. ValueError: Related model 'myapp.User' cannot be resolved
Add Comment
Please, Sign In to add comment