2010-02-16 21 views

Respuesta

71

finalmente lo hice como esto en mi archivo 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) 
+8

¡También podemos extender UserAdmin en lugar de modificarlo dinámicamente! – Natim

+4

Para aclarar, esto se debe agregar al archivo admin.py de nivel superior de su sitio. –

+1

¿Puedo preguntar a qué te refieres con el nivel superior? –

-3

Suponiendo que su clase de usuario es User y su campo de fecha de suscripción es , esto es lo que hay que añadir en su admin.py

class UserAdmin(admin.ModelAdmin): 
    list_display = ('subscription_date',) 

admin.site.register(User, UserAdmin) 
+0

Esto puede trabajar incluso con la auth.user edifi? – Natim

+5

Esto debería heredar del UserAdmin incorporado; de lo contrario, perderá todas las demás personalizaciones. Y también debe anular el registro del registro incorporado; La respuesta de Natim tiene el código correcto. –

13

Otra forma de hacerlo es ampliar la clase UserAdmin.

También puede crear una función para poner en 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) 
+0

¿Puedo hacer lo siguiente (sin '__init__'), o hay un problema con él? ? 'class CustomUserAdmin (UserAdmin): list_display = list (UserAdmin.list_display) + ['date_joined']' – jdm

Cuestiones relacionadas