|
|
@@ -3,6 +3,8 @@ Sample user/profile models for testing. These aren't enabled by default in the
|
|
3
|
3
|
sandbox
|
|
4
|
4
|
"""
|
|
5
|
5
|
|
|
|
6
|
+from django.contrib.auth.models import (
|
|
|
7
|
+ AbstractUser, BaseUserManager, AbstractBaseUser)
|
|
6
|
8
|
from django.db import models
|
|
7
|
9
|
from django.utils import timezone
|
|
8
|
10
|
from django.utils.encoding import python_2_unicode_compatible
|
|
|
@@ -25,49 +27,43 @@ class Profile(models.Model):
|
|
25
|
27
|
age = models.PositiveIntegerField(verbose_name='Age')
|
|
26
|
28
|
|
|
27
|
29
|
|
|
28
|
|
-# A simple extension of the core User model for Django 1.5
|
|
29
|
|
-try:
|
|
30
|
|
- from django.contrib.auth.models import (
|
|
31
|
|
- AbstractUser, BaseUserManager, AbstractBaseUser)
|
|
32
|
|
-except ImportError:
|
|
33
|
|
- pass
|
|
34
|
|
-else:
|
|
|
30
|
+# A simple extension of the core User model for Django 1.5+
|
|
|
31
|
+class ExtendedUserModel(AbstractUser):
|
|
|
32
|
+ twitter_username = models.CharField(max_length=255, unique=True)
|
|
35
|
33
|
|
|
36
|
|
- class ExtendedUserModel(AbstractUser):
|
|
37
|
|
- twitter_username = models.CharField(max_length=255, unique=True)
|
|
38
|
34
|
|
|
39
|
|
- class CustomUserManager(BaseUserManager):
|
|
|
35
|
+class CustomUserManager(BaseUserManager):
|
|
40
|
36
|
|
|
41
|
|
- def create_user(self, email, password=None):
|
|
42
|
|
- now = timezone.now()
|
|
43
|
|
- email = BaseUserManager.normalize_email(email)
|
|
44
|
|
- user = self.model(email=email, last_login=now)
|
|
45
|
|
- user.set_password(password)
|
|
46
|
|
- user.save(using=self._db)
|
|
47
|
|
- return user
|
|
|
37
|
+ def create_user(self, email, password=None):
|
|
|
38
|
+ now = timezone.now()
|
|
|
39
|
+ email = BaseUserManager.normalize_email(email)
|
|
|
40
|
+ user = self.model(email=email, last_login=now)
|
|
|
41
|
+ user.set_password(password)
|
|
|
42
|
+ user.save(using=self._db)
|
|
|
43
|
+ return user
|
|
48
|
44
|
|
|
49
|
|
- def create_superuser(self, email, password):
|
|
50
|
|
- return self.create_user(email, password)
|
|
|
45
|
+ def create_superuser(self, email, password):
|
|
|
46
|
+ return self.create_user(email, password)
|
|
51
|
47
|
|
|
52
|
|
- # A user model which doesn't extend AbstractUser
|
|
53
|
|
- @python_2_unicode_compatible
|
|
54
|
|
- class CustomUserModel(AbstractBaseUser):
|
|
55
|
|
- name = models.CharField(max_length=255, blank=True)
|
|
56
|
|
- email = models.EmailField(unique=True)
|
|
57
|
|
- twitter_username = models.CharField(max_length=255, unique=True)
|
|
|
48
|
+# A user model which doesn't extend AbstractUser
|
|
|
49
|
+@python_2_unicode_compatible
|
|
|
50
|
+class CustomUserModel(AbstractBaseUser):
|
|
|
51
|
+ name = models.CharField(max_length=255, blank=True)
|
|
|
52
|
+ email = models.EmailField(unique=True)
|
|
|
53
|
+ twitter_username = models.CharField(max_length=255, unique=True)
|
|
58
|
54
|
|
|
59
|
|
- USERNAME_FIELD = 'email'
|
|
|
55
|
+ USERNAME_FIELD = 'email'
|
|
60
|
56
|
|
|
61
|
|
- objects = CustomUserManager()
|
|
|
57
|
+ objects = CustomUserManager()
|
|
62
|
58
|
|
|
63
|
|
- def __str__(self):
|
|
64
|
|
- return self.email
|
|
|
59
|
+ def __str__(self):
|
|
|
60
|
+ return self.email
|
|
65
|
61
|
|
|
66
|
|
- def get_full_name(self):
|
|
67
|
|
- return self.name
|
|
|
62
|
+ def get_full_name(self):
|
|
|
63
|
+ return self.name
|
|
68
|
64
|
|
|
69
|
|
- get_short_name = get_full_name
|
|
|
65
|
+ get_short_name = get_full_name
|
|
70
|
66
|
|
|
71
|
|
- # A simple extension of the core Oscar User model
|
|
72
|
|
- class ExtendedOscarUserModel(abstract_models.AbstractUser):
|
|
73
|
|
- twitter_username = models.CharField(max_length=255, unique=True)
|
|
|
67
|
+# A simple extension of the core Oscar User model
|
|
|
68
|
+class ExtendedOscarUserModel(abstract_models.AbstractUser):
|
|
|
69
|
+ twitter_username = models.CharField(max_length=255, unique=True)
|