答案:
在Django中,管理员用户更改表单默认情况下是将电子邮件替换为用户名的。这是因为Django的默认用户模型(User Model)中,用户名(username)是唯一标识用户的字段,而电子邮件(email)是可选的字段。
然而,如果你想自定义管理员用户更改表单,将电子邮件替换为其他字段,可以通过继承Django的内置表单类来实现。以下是一个示例:
from django.contrib.auth.forms import UserChangeForm
from django.contrib.auth import get_user_model
class CustomUserChangeForm(UserChangeForm):
class Meta:
model = get_user_model()
fields = ('username', 'first_name', 'last_name', 'email') # 自定义字段顺序和内容
在上述示例中,我们创建了一个名为CustomUserChangeForm的自定义表单类,继承自Django的UserChangeForm。然后,通过定义Meta类中的fields属性,我们可以指定要在表单中显示的字段,包括用户名、名字、姓氏和电子邮件。
要在Django的管理员界面中使用自定义的用户更改表单,需要在admin.py文件中注册自定义的表单类。以下是一个示例:
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from .forms import CustomUserChangeForm
from .models import CustomUser
class CustomUserAdmin(UserAdmin):
form = CustomUserChangeForm
admin.site.register(CustomUser, CustomUserAdmin)
在上述示例中,我们创建了一个名为CustomUserAdmin的自定义管理员类,继承自Django的UserAdmin。然后,通过设置form属性为CustomUserChangeForm,将自定义的用户更改表单应用于管理员界面。
这样,当管理员在Django的管理员界面中编辑用户时,将显示自定义的表单,其中电子邮件字段仍然存在,并且可以进行更改。
推荐的腾讯云相关产品和产品介绍链接地址:
请注意,以上推荐的腾讯云产品仅供参考,具体选择应根据实际需求进行评估和决策。
领取专属 10元无门槛券
手把手带您无忧上云