Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 自定义Django用户管理_Python_Django_Django Models_Django Admin - Fatal编程技术网

Python 自定义Django用户管理

Python 自定义Django用户管理,python,django,django-models,django-admin,Python,Django,Django Models,Django Admin,我有一个Django应用程序,其中用户有额外的数据。该数据收集在一个配置文件模型中,其中一个OneToOneField指向用户 这很好,在大多数情况下都能很好地工作,但是我很难为用户定制管理员。特别是: 我希望能够在列表(显示中显示配置文件字段。如果不在User本身上编写额外的方法,我不知道如何做到这一点 我希望能够在userdetail页面中显示有关模型的一些信息(例如用户拥有的一些资源)。同样,如果不编写自定义的User方法,我不知道如何做到这一点 你知道解决上述问题的办法吗 事实证明,

我有一个Django应用程序,其中用户有额外的数据。该数据收集在一个
配置文件
模型中,其中一个
OneToOneField
指向
用户

这很好,在大多数情况下都能很好地工作,但是我很难为
用户
定制管理员。特别是:

  • 我希望能够在
    列表(显示
    中显示
    配置文件
    字段。如果不在
    User
    本身上编写额外的方法,我不知道如何做到这一点
  • 我希望能够在
    user
    detail页面中显示有关模型的一些信息(例如用户拥有的一些资源)。同样,如果不编写自定义的
    User
    方法,我不知道如何做到这一点
你知道解决上述问题的办法吗


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

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

class BookInline(admin.TabularInline):
    model = Book

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

admin.site.register(Author, AuthorAdmin)
阅读更多

编辑:您应该能够在UserAdmin模型上添加方法,并在设置列表显示字段时引用这些方法:

list_display = (..., 'your_method')

这对这个问题没有帮助。添加内联不会改变用户列表的显示方式。对于第二点,我需要一个单独的字段来总结某些状态,而不是单独的内联。顺便说一句,问题是我使用的模型是
User
,对此我没有控制权。我在为其他模型定制管理员时没有遇到任何问题。也许我理解这句话是错误的:
。用户详细信息页面中有关相关模型的一些信息
。我补充了关于列表显示的观点,这可能会对你们有所帮助。是的,这确实是我自己的答案:-)我删除了我的反对票