2010-03-24 24 views
5

Me gustaría cambiar la administración de un grupo, por lo que mostraría cuántos usuarios hay en un determinado grupo. Me gustaría mostrar esto en la vista que muestra todos los grupos, el anterior a la entrada de administrador para cierto grupo. ¿Es posible? Estoy hablando de cómo cambiar la administración de un grupo y cómo agregar la función a list_display.django: mostrar usuarios de grupo cuenta en administración

Respuesta

8

Primero necesitarás importar y subclase GroupAdmin de django.contrib.auth.admin. En su subclase, defina un método user_count. Luego, anule el registro del modelo de grupo existente del administrador y vuelva a registrar el nuevo.

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) 
+0

divertido, ya tengo mi propia GroupAdmin, se olvidó, que estaba haciendo algo en que (además de usuario más fácil, ya que no se puede agregar usuarios de grupo admin por defecto). Fue hace tanto tiempo que simplemente me olvidé de eso. Muchas gracias por su ayuda :-) – gruszczy

+0

Ok, aparece un campo, pero siempre es None y no se llama a la función user_count. Alguna idea, ¿por qué está pasando esto? – gruszczy

+0

Ohk, debería ser obj.user_set.count(), en lugar de self.user_set.count(). Ahora funciona :-) – gruszczy

Cuestiones relacionadas