2011-11-11 118 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