我有一个Django应用程序,用户可以在其中获得其他数据。该数据收集在Profile
模型中,OneToOneField
指向User
。
这很好,适用于大多数用途,但我无法自定义User
的管理员。特别是:
Profile
内显示list_display
字段。如果不在User
本身上编写其他方法,我不知道如何做到这一点。User
详细信息页面中显示有关相关模型的一些信息(例如用户拥有的一些资源)。同样,我不知道如何在不编写自定义User
方法的情况下执行此操作。您知道上述任何解决方案吗?
答案 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
模型中。通过这种方式,我可以访问有关用户的所有信息。