自定义Django用户管理员

时间:2011-11-11 09:52:37

标签: python django django-models django-admin

我有一个Django应用程序,用户可以在其中获得其他数据。该数据收集在Profile模型中,OneToOneField指向User

这很好,适用于大多数用途,但我无法自定义User的管理员。特别是:

  • 我希望能够在Profile内显示list_display字段。如果不在User本身上编写其他方法,我不知道如何做到这一点。
  • 我希望能够在User详细信息页面中显示有关相关模型的一些信息(例如用户拥有的一些资源)。同样,我不知道如何在不编写自定义User方法的情况下执行此操作。
  

您知道上述任何解决方案吗?

2 个答案:

答案 0 :(得分:1)

您只需在admin.py中编辑管理类。您可以使用admin.inline *类来帮助您。来自Django网站的示例,它将Book添加到作者的管理页面:

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')

答案 1 :(得分:0)

事实证明,可以将方法放在UserAdmin本身而不是User模型中。通过这种方式,我可以访问有关用户的所有信息。