2010-02-16 100 views

回答

71

我終於做了這樣的補充什麼在我的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

我們也可以擴展UserAdmin而不是動態修改它! – Natim 2010-02-16 04:49:26

+4

爲了澄清,這應該被添加到您網站的頂級admin.py文件中。 – 2011-03-23 11:39:04

+1

我可以問一下頂級的意思嗎? – 2014-12-05 14:16:12

-3

假設你的用戶類是User和訂閱日期字段爲,這是你需要在你的admin.py

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

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

這可以工作,甚至與的buildin auth.User? – Natim 2010-02-16 04:33:19

+5

這應該從內置的UserAdmin繼承,否則會丟失所有其他自定義設置。而且你也必須取消註冊內置註冊。 Natim的答案有正確的代碼。 – 2010-02-16 19:00:29

13

另一種方法是擴展UserAdmin類。

你也可以創建一個函數來穿上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

我還可以做下面的事情(沒有'__init__'),或者是否有問題? 'class CustomUserAdmin(UserAdmin):list_display = list(UserAdmin.list_display)+ ['date_joined']' – jdm 2016-12-12 10:01:00

相關問題