Django UserAdmin的add_fieldsets?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django UserAdmin的add_fieldsets?相关的知识,希望对你有一定的参考价值。

我正在关注制作自定义用户的教程以进行身份​​验证。本教程在UserAdmin中使用了某个属性add_fieldsets。这是什么意思?我似乎无法找到任何关于此的文档。

这是片段:

class UserAdmin(UserAdmin):
"""Define admin model for custom User model with no email field."""

    fieldsets = (
        (None, {'fields': ('email', 'password')}),
        ('Personal info', {'fields': ('first_name', 'last_name')}),
        ('Permissions', {'fields': ('is_active', 'is_staff', 'is_superuser', 'groups', 'user_permissions')}),
        ('Important dates', {'fields': ('last_login', 'date_joined')}),
        ('Contact info', {'fields': ('contact_no',)}),)

    add_fieldsets = (
        (None, {
            'classes': ('wide',),
            'fields': ('email', 'password1', 'password2'),}),)

    list_display = ('email', 'first_name', 'last_name', 'is_staff')
    search_fields = ('email', 'first_name', 'last_name')
    ordering = ('email',)

这是我关注的教程:How to use email as username for Django authentication (removing the username)

答案

add_fieldsets类变量用于定义将在创建用户页面上显示的字段。

不幸的是,它没有很好地记录,我发现文档最接近的是https://docs.djangoproject.com/en/2.1/topics/auth/customizing/的代码示例中的注释(add_fieldsets的搜索页面)。

classes键设置我们要应用于表单部分的任何自定义CSS类。

fields键设置您希望在表单中显示的字段。

在您的示例中,创建页面将允许您设置emailpassword1password2

以上是关于Django UserAdmin的add_fieldsets?的主要内容,如果未能解决你的问题,请参考以下文章

Django admin 中group的视图怎么添加选择user

将 Django auth UserAdmin 用于自定义用户模型

Django UserAdmin 自定义

python Django Admin:隐藏UserAdmin的权限,为GroupAdmin排除无用的权限

如何在Django Admin中的用户变更页面添加描述?

Django 默认 user 表的替换和扩充