from django.contrib import admin from django.contrib.auth.admin import UserAdmin from .models import CustomUser class CustomUserAdmin(UserAdmin): model = CustomUser list_display = ('email', 'name', 'is_staff', 'is_active',) list_filter = ('is_staff', 'is_active',) fieldsets = ( (None, {'fields': ('email', 'password')}), ('Personal info', {'fields': ('first_name', 'last_name', 'dob', 'contact_number', 'profile_photo')}), ('Permissions', {'fields': ('is_staff', 'is_active', 'is_superuser', 'groups', 'user_permissions')}), ) add_fieldsets = ( (None, { 'classes': ('wide',), 'fields': ('email', 'first_name', 'last_name', 'password1', 'password2', 'is_staff', 'is_active')} ), ) search_fields = ('email',) ordering = ('email',) def save_model(self, request, obj, form, change): if not change: # If the user is being created obj.set_password(form.cleaned_data['password1']) obj.save() # Call save with custom_save=True else: obj.save() admin.site.register(CustomUser, CustomUserAdmin)