Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. """
  2. Sample user/profile models for testing. These aren't enabled by default in the
  3. sandbox
  4. """
  5. from django.db import models
  6. from django.utils import timezone
  7. from oscar.core import compat
  8. from oscar.apps.customer import abstract_models
  9. class Profile(models.Model):
  10. """
  11. Dummy profile model used for testing
  12. """
  13. user = models.OneToOneField(compat.AUTH_USER_MODEL, related_name="profile")
  14. MALE, FEMALE = 'M', 'F'
  15. choices = (
  16. (MALE, 'Male'),
  17. (FEMALE, 'Female'))
  18. gender = models.CharField(max_length=1, choices=choices,
  19. verbose_name='Gender')
  20. age = models.PositiveIntegerField(verbose_name='Age')
  21. # A simple extension of the core User model for Django 1.5
  22. try:
  23. from django.contrib.auth.models import (
  24. AbstractUser, BaseUserManager, AbstractBaseUser)
  25. except ImportError:
  26. pass
  27. else:
  28. class ExtendedUserModel(AbstractUser):
  29. twitter_username = models.CharField(max_length=255, unique=True)
  30. class CustomUserManager(BaseUserManager):
  31. def create_user(self, email, password=None):
  32. now = timezone.now()
  33. email = BaseUserManager.normalize_email(email)
  34. user = self.model(email=email, last_login=now)
  35. user.set_password(password)
  36. user.save(using=self._db)
  37. return user
  38. def create_superuser(self, email, password):
  39. return self.create_user(email, password)
  40. # A user model which doesn't extend AbstractUser
  41. class CustomUserModel(AbstractBaseUser):
  42. name = models.CharField(max_length=255, blank=True)
  43. email = models.EmailField(unique=True)
  44. twitter_username = models.CharField(max_length=255, unique=True)
  45. USERNAME_FIELD = 'email'
  46. objects = CustomUserManager()
  47. def __unicode__(self):
  48. return self.email
  49. def get_full_name(self):
  50. return self.name
  51. get_short_name = get_full_name
  52. # A simple extension of the core Oscar User model
  53. class ExtendedOscarUserModel(abstract_models.AbstractUser):
  54. twitter_username = models.CharField(max_length=255, unique=True)