Advertisement
Guest User

Untitled

a guest
Aug 22nd, 2017
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.34 KB | None | 0 0
  1. from django.db import models
  2. from django.contrib.auth.models import User
  3. from django.db.models.signals import post_save
  4. from django.dispatch import receiver
  5. from phonenumber_field.modelfields import PhoneNumberField
  6.  
  7. User._meta.get_field('email').blank = False
  8. User._meta.get_field('email')._unique = True
  9.  
  10. class Profile(models.Model):
  11. user = models.OneToOneField(User, on_delete=models.CASCADE, related_name ='profile')
  12. email_confirmed = models.BooleanField(default=False)
  13. phone_number = PhoneNumberField( blank=True, null=True)
  14. organisation = models.CharField(max_length=30, blank=True)
  15.  
  16.  
  17. @receiver(post_save, sender=User)
  18. def update_user_profile(sender, instance, created, **kwargs):
  19. if created:
  20. Profile.objects.create(user=instance)
  21. instance.profile.save()
  22.  
  23. from django.contrib import admin
  24. from django.contrib.auth import admin as upstream
  25. from django.contrib.auth.admin import UserAdmin
  26. from django.contrib.auth.forms import UserCreationForm, UserChangeForm
  27. from django.contrib.auth.models import Group, User
  28. from django.utils.translation import ugettext, ugettext_lazy as _
  29. from django.db.models.signals import post_save
  30. from django.dispatch import receiver
  31. from .models import Profile
  32.  
  33.  
  34. class ProfileInline(admin.StackedInline):
  35. model = Profile
  36. can_delete = False
  37. verbose_name_plural = 'Profile'
  38. fk_name = 'user'
  39.  
  40. class CustomUserAdmin(UserAdmin):
  41. inlines = (ProfileInline, )
  42. list_select_related = ( 'profile', )
  43. list_display = ('email', 'username', 'first_name', 'last_name', 'is_staff')
  44.  
  45. #exclude = ('username',)
  46.  
  47. fieldsets = (
  48. ('Personal information', {'fields': ('first_name', 'last_name', 'username', 'email', 'password')}),
  49. ('Permissions', {'fields': ('is_active', 'is_staff', 'is_superuser', 'groups', 'user_permissions')}),
  50. ('Important dates', {'fields': ('last_login', 'date_joined')}),
  51. )
  52.  
  53. add_fieldsets = (
  54. ('None', {
  55. 'classes': ('wide',),
  56. 'fields': ('username', 'email', 'password1', 'password2')}
  57. ),
  58. )
  59.  
  60. def get_inline_instances(self, request, obj=None):
  61. if not obj:
  62. return list()
  63. return super(CustomUserAdmin, self).get_inline_instances(request, obj)
  64.  
  65. def get_ordering(self, request):
  66. return ['-date_joined']
  67.  
  68.  
  69. admin.site.unregister(User)
  70. admin.site.register(User, CustomUserAdmin)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement