> 文章列表 > Django | 解决admin增加新用户只有用户名密码和确认密码的问题

Django | 解决admin增加新用户只有用户名密码和确认密码的问题

Django | 解决admin增加新用户只有用户名密码和确认密码的问题

文章目录

如图所示,下面给出解决方案:
Django | 解决admin增加新用户只有用户名密码和确认密码的问题

如果您使用 使用 Django 默认的后台管理界面添加用户时,只看到了三个字段(通常是 username、password和 repassword),那么可以通过定义 add_fieldsets 属性来增加更多字段。

首先,您需要创建一个继承自 Django 自带的 UserAdmin 类的子类,并在其中定义 add_fieldsets 列表。在 add_fieldsets 列表中,您可以定义新的字段,以及它们在表单中的排列方式和提示文本等信息。例如,以下代码将增加一个 first_name 和 last_name 字段:

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import Userclass MyUserAdmin(UserAdmin):add_fieldsets = ((None, {'classes': ('wide',),'fields': ('username', 'first_name', 'last_name', 'email', 'password1', 'password2'),}),)# 注销原来的 User 模型注册,并注册 MyUserAdmin
admin.site.unregister(User)
admin.site.register(User, MyUserAdmin)

在上面的代码中,我们定义了一个 MyUserAdmin 类,它继承自 Django 自带的 UserAdmin 类。我们将 add_fieldsets 设置为一个元组,其中包含一个只有一个分组的列表。在这个分组中,我们定义了要显示的字段,分别是 username、first_name、last_name、email、password1 和 password2。

通过这种方式,您可以自定义 Django 的后台管理界面中的添加用户表单,增加更多的字段和功能。需要注意的是,add_fieldsets 属性只适用于添加新的记录,如果要修改现有记录的字段,需要使用 fieldsets 属性。

具体用法请查看Django | fieldsets和add_fieldsets