将 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)
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)