2011-11-11 163 views
0

我有一個Django應用程序,用戶有額外的數據。該數據收集在Profile模型中,OneToOneField指向User自定義Django用戶管理

這很好,適用於大多數目的,但我無法爲User定製管理員。特別是:

  • 我希望能夠在list_display內顯示Profile字段。如果沒有在User本身上編寫其他方法,我不知道該怎麼做。
  • 我希望能夠在User詳細信息頁面中顯示有關相關模型的一些信息(例如,用戶擁有的一些資源)。再次,我不知道如何編寫自定義User方法。

您是否知道以上任何解決方案?

回答

0

事實證明,一個可以把在UserAdmin本身的方法,而不是比User模型。這樣我就可以訪問我需要的關於用戶的所有信息。

1

您只需要在admin.py中編輯管理員類。你可以使用admin.inline *類來幫助你。從Django的網站實例,將增加全書以作者的管理頁面:

class BookInline(admin.TabularInline): 
    model = Book 

class AuthorAdmin(admin.ModelAdmin): 
    inlines = [ 
     BookInline, 
    ] 

admin.site.register(Author, AuthorAdmin) 

更多here

編輯:你應該能夠添加上UserAdmin模型的方法和設置list_display字段時引用它們:

list_display = (..., 'your_method') 
+0

這不符合的問題有所幫助。添加內聯不會改變顯示用戶列表的方式 – Andrea

+0

至於第二點,我需要一個總結某些狀態的字段,而不是單獨的內聯。 – Andrea

+0

順便問一下,問題是我正在使用的模型是'User',我無法控制它。自定義其他模型的管理員沒有問題。 – Andrea