django: la visualizzazione di contare gli utenti di gruppo in amministrazione
-
22-09-2019 - |
Domanda
Vorrei cambiare amministratore di un gruppo, quindi sarebbe visualizzare quanti utenti ci sono in un certo gruppo. Mi piacerebbe visualizzarla nella vista che mostra tutti i gruppi, l'uno prima di immettere admin certo gruppo. È possibile? Sto parlando sia su come modificare amministratore di un gruppo e come aggiungere la funzione di list_display
.
Soluzione
Per prima cosa avresti bisogno di importare e sottoclasse GroupAdmin
da django.contrib.auth.admin
. Nella sottoclasse, definire un metodo user_count
. Poi, annullare la registrazione del modello di Gruppo esistente da admin, e ri-registrare il nuovo.
from django.contrib.auth.admin import GroupAdmin
from django.contrib.auth.models import Group
class GroupAdminWithCount(GroupAdmin):
def user_count(self, obj):
return obj.user_set.count()
list_display = GroupAdmin.list_display + ('user_count',)
admin.site.unregister(Group)
admin.site.register(Group, GroupAdminWithCount)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow