File size: 1,410 Bytes
6924b02
 
 
 
 
 
 
 
 
 
 
1ae15f5
 
6924b02
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
from django.contrib import admin
from django.http.request import HttpRequest
from .models import User
from django.contrib.auth.admin import UserAdmin
from .forms import UserAdminCreationForm,UserAdminUpdateForm
# Register your models here.

# class MyUserAdmin(UserAdmin):
class MyUserAdmin(admin.ModelAdmin):

    search_fields=('email','username')
    ordering=('-joining_date',)
    list_display = ('email','username','joining_date','is_active','is_staff','is_superuser')

    # fieldsets=((None,{'fields':('email','username')}),
    #            (None,{'fields':('password',)}))



    form     = UserAdminUpdateForm
    add_form = UserAdminCreationForm    # not a native ModelAdmin attribute

    add_fieldsets=((None,{"fields":('username','email','password','confirm_password')}),
                ("Authority",{"fields":('is_staff','is_superuser')}),
                )
    
    # overriding
    def get_fieldsets(self, request, obj=None,**kwargs):

        if obj is None:
            return self.add_fieldsets
        return super().get_fieldsets(request,obj)
        
    # overriding
    def get_form(self,request,obj=None, **kwargs):
        # using this method to register add_form

        defaults={}
        if obj is None:
            defaults["form"]=self.add_form
        defaults.update(**kwargs)
        return super().get_form(request,obj,**defaults)


admin.site.register(User,MyUserAdmin)