Come personalizzare la pagina auth.User Admin in Django CRUD?
-
20-09-2019 - |
Domanda
Voglio solo aggiungere la data di sottoscrizione della lista dell'utente nel sito Django CRUD Amministrazione. Come posso fare questo?
Grazie per il vostro aiuto
Soluzione
Alla fine ho fatto come questo nel mio file admin.py:
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User
UserAdmin.list_display = ('email', 'first_name', 'last_name', 'is_active', 'date_joined', 'is_staff')
admin.site.unregister(User)
admin.site.register(User, UserAdmin)
Altri suggerimenti
Un altro modo per fare questo sta estendendo la classe UserAdmin.
È anche possibile creare una funzione di mettere su list_display
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User
class CustomUserAdmin(UserAdmin):
def __init__(self, *args, **kwargs):
super(UserAdmin,self).__init__(*args, **kwargs)
UserAdmin.list_display = list(UserAdmin.list_display) + ['date_joined', 'some_function']
# Function to count objects of each user from another Model (where user is FK)
def some_function(self, obj):
return obj.another_model_set.count()
admin.site.unregister(User)
admin.site.register(User, CustomUserAdmin)
Supponendo che la classe utente è User
e il vostro campo data di sottoscrizione è subscription_date
, questo è ciò che è necessario aggiungere sul tuo admin.py
class UserAdmin(admin.ModelAdmin):
list_display = ('subscription_date',)
admin.site.register(User, UserAdmin)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow