将 first_name、last_name 字段添加到 Django "add user" 用户界面

Adding first_name, last_name fields to django "add user" user interface

Default "Add User" Interface

在此界面中,我想添加名字和姓氏字段。我知道这些字段已经作为可选字段出现在 django.contrib.auth.models 用户模型中,但它们不会出现在 UI 中。还要使这些字段成为必填字段,是否有必要覆盖现有的用户模型? 我对此很陌生,感觉这样做不是一个好主意。 感谢所有帮助!

子类 UserCreationForm 并在您的自定义用户管理员中使用它:

# forms.py
from django.contrib.auth.forms import UserCreationForm

class CustomUserCreationForm(UserCreationForm):        
    # make fields required if desired
    # first_name = forms.CharField(required=True)

    class Meta(UserCreationForm.Meta):
        fields = ("username", "first_name", "last_name")

# admin.py
from django.contrib.admin.sites import site
from django.contrib.auth.admin import UserAdmin

class CustomUserAdmin(UserAdmin):
    add_form = CustomUserCreationForm
    add_fieldsets = (
        (None, {
            'classes': ('wide',),
            'fields': ('username', 'password1', 'password2', 
                       'first_name', 'last_name'),
        }),
    )


site.unregister(User)
site.register(User, CustomUserAdmin)