Django 使用编辑表单作为添加用户给出错误

Django use edit form as add user gives error

我正在使用 Django 2.2.x.

我想将编辑用户表单中的所有字段用于添加用户表单。 为此,我扩展了 AuthUserAdmin

@admin.register(User)
class UserAdmin(AuthUserAdmin):

    inlines = [
        ProfileAdminInline
    ]

    fieldsets = AuthUserAdmin.fieldsets
    add_fieldsets = AuthUserAdmin.fieldsets

    list_filter = [
        'is_staff',
        'is_active',
        'is_superuser',
        'last_login',
        'date_joined',
    ]

    list_display = [
        'email',
        'full_name',
        'is_staff',
        'is_superuser',
        'is_active',
        'last_login',
        'date_joined',
    ]

    ordering = ('-date_joined', 'username',)

    search_fields = ['email', 'first_name', 'last_name']

但是添加用户报错

Please correct the errors below

但是没有突出显示错误的字段。

如何在 Django 管理员添加用户中使用编辑表单作为添加表单?

add_fieldsets 包括 password1password2

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

所以你不能用 fieldsets 替换它,它有 password.

    fieldsets = (
        (None, {'fields': ('username', 'password')}),
        ...

您可以尝试按如下方式组合它们:

    # You can remove 'fieldsets' since it will 
    # inherit AuthUserAdmin.fieldsets by default
    fieldsets = AuthUserAdmin.fieldsets
    add_fieldsets = AuthUserAdmin.add_fieldsets + AuthUserAdmin.fieldsets[1:]

这将解决错误,但我认为它不会起作用,因为用户管理员有:

add_form = UserCreationForm

您需要使用所需的额外字段创建自定义表单。