Advertisement
Guest User

Untitled

a guest
Jul 5th, 2015
231
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.38 KB | None | 0 0
  1. from django.db import models
  2. from django.contrib.auth.models import BaseUserManager, AbstractBaseUser
  3.  
  4. class MyUserManager(BaseUserManager):
  5. def create_user(self, email, dob, password = None):
  6. user = self.model(
  7. email = self.normalize_email(email),
  8. dob = dob
  9. )
  10. user.set_password(password)
  11. user.save(using=self._db)
  12.  
  13. return user
  14.  
  15. def create_superuser(self, email, dob, password):
  16. suser = self.create_user(email, password=password, dob=dob)
  17. suser.is_admin = True
  18. suser.save(using=self._db)
  19. return suser
  20.  
  21. class MyUser(AbstractBaseUser):
  22. email = models.EmailField(max_length=255, unique=True)
  23. dob = models.DateField()
  24. is_active = models.BooleanField(default=True)
  25. is_admin = models.BooleanField(default=False)
  26.  
  27. objects = MyUserManager()
  28.  
  29. USERNAME_FIELD = 'email'
  30. REQUIRED_FIELD = ['dob']
  31.  
  32. @property
  33. def is_staff(self):
  34. return self._is_staff
  35.  
  36. from django.contrib import admin
  37. from django.contrib.auth.admin import UserAdmin
  38. from django.contrib.auth.models import Group
  39.  
  40. from django import forms
  41. from django.contrib.auth.forms import ReadOnlyPasswordHashField
  42.  
  43.  
  44. from .models import MyUser
  45.  
  46. class UserCreationForm(forms.ModelForm):
  47. password1 = forms.CharField(widget=forms.PasswordInput)
  48. password2 = forms.CharField(widget=forms.PasswordInput)
  49.  
  50. class Meta:
  51. model = MyUser
  52. fields = ('email', 'dob')
  53.  
  54. def save(self, commit=True):
  55. user = super(UserCreationForm, self).save(commit=False)
  56.  
  57. user.set_password(self.cleaned_data["password1"])
  58. if commit:
  59. user.save()
  60. return user
  61.  
  62. class UserChangeForm(forms.ModelForm):
  63. password = ReadOnlyPasswordHashField
  64.  
  65. class Meta:
  66. model = MyUser
  67. fields = ('email', 'password', 'dob', 'is_active', 'is_admin')
  68.  
  69. def clean_password(self):
  70. return self.initial["password"]
  71.  
  72. class MyAdmin(UserAdmin):
  73. form = UserChangeForm ##
  74. add_form = UserCreationForm
  75.  
  76. list_display = ('email', 'dob', 'is_admin')
  77. list_filter = ('is_admin',)
  78. fieldsets = (
  79. (None, {'fields': ('email', 'password',)}),
  80. ('Personal info', {'fields': ('dob',)}),
  81. ('Permisions', {'fields': ('is_admin',)}),
  82. )
  83.  
  84. add_fieldsets = (
  85. (None, {
  86. 'classes': ('wide',),
  87. 'fields': ('email','dob', 'password1', 'password2')
  88. }
  89. )
  90. )
  91.  
  92.  
  93. search_fields = ('email',)
  94. ordering = ('email',)
  95. filter_horizontal = ()
  96.  
  97. admin.site.register(MyUser, MyAdmin)
  98. admin.site.unregister(Group)
  99.  
  100. AUTH_USER_MODEL = 'client.MyUser'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement