Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from django.db import models
- from django.contrib.auth.models import User
- from django.db.models.signals import post_save
- from django.dispatch import receiver
- from phonenumber_field.modelfields import PhoneNumberField
- User._meta.get_field('email').blank = False
- User._meta.get_field('email')._unique = True
- class Profile(models.Model):
- user = models.OneToOneField(User, on_delete=models.CASCADE, related_name ='profile')
- email_confirmed = models.BooleanField(default=False)
- phone_number = PhoneNumberField( blank=True, null=True)
- organisation = models.CharField(max_length=30, blank=True)
- @receiver(post_save, sender=User)
- def update_user_profile(sender, instance, created, **kwargs):
- if created:
- Profile.objects.create(user=instance)
- instance.profile.save()
- from django.contrib import admin
- from django.contrib.auth import admin as upstream
- from django.contrib.auth.admin import UserAdmin
- from django.contrib.auth.forms import UserCreationForm, UserChangeForm
- from django.contrib.auth.models import Group, User
- from django.utils.translation import ugettext, ugettext_lazy as _
- from django.db.models.signals import post_save
- from django.dispatch import receiver
- from .models import Profile
- class ProfileInline(admin.StackedInline):
- model = Profile
- can_delete = False
- verbose_name_plural = 'Profile'
- fk_name = 'user'
- class CustomUserAdmin(UserAdmin):
- inlines = (ProfileInline, )
- list_select_related = ( 'profile', )
- list_display = ('email', 'username', 'first_name', 'last_name', 'is_staff')
- #exclude = ('username',)
- fieldsets = (
- ('Personal information', {'fields': ('first_name', 'last_name', 'username', 'email', 'password')}),
- ('Permissions', {'fields': ('is_active', 'is_staff', 'is_superuser', 'groups', 'user_permissions')}),
- ('Important dates', {'fields': ('last_login', 'date_joined')}),
- )
- add_fieldsets = (
- ('None', {
- 'classes': ('wide',),
- 'fields': ('username', 'email', 'password1', 'password2')}
- ),
- )
- def get_inline_instances(self, request, obj=None):
- if not obj:
- return list()
- return super(CustomUserAdmin, self).get_inline_instances(request, obj)
- def get_ordering(self, request):
- return ['-date_joined']
- admin.site.unregister(User)
- admin.site.register(User, CustomUserAdmin)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement