You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django Admin无法添加用户:合法用户名仍报错求助

问题解决:Django Admin添加用户时用户名验证异常

你的问题出在CustomUserAdmin的add_fieldsets配置上——你错误地使用了UserAdmin.fieldsets(编辑用户的字段集)来构建添加用户的字段配置,这会导致添加页面的表单结构错乱,触发不必要的用户名验证报错。

修复步骤

修改admin.py中的add_fieldsets配置,将UserAdmin.fieldsets替换为UserAdmin.add_fieldsets,同时保留age字段的添加:

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from .forms import CustomUserCreationForm, CustomUserChangeForm
from .models import CustomUser


class CustomUserAdmin(UserAdmin):
    add_form = CustomUserCreationForm
    form = CustomUserChangeForm
    model = CustomUser
    list_display = ['email', 'username', 'age', 'is_staff', ]
    fieldsets = UserAdmin.fieldsets + ((None, {'fields': ('age',)}),)
    # 替换为添加用户专用的字段集配置
    add_fieldsets = UserAdmin.add_fieldsets + ((None, {'fields': ('age',)}),)


admin.site.register(CustomUser, CustomUserAdmin)

原因说明

  • UserAdmin.fieldsets是用于编辑已有用户的字段分组配置,包含权限、状态等高级字段
  • UserAdmin.add_fieldsets是专门为创建新用户设计的配置,仅包含用户名、密码等必要字段,结构完全符合Django用户创建的验证逻辑
  • 混用两者会打乱添加页面的表单字段规则,触发无意义的用户名验证提示

内容的提问来源于stack exchange,提问作者Mohammad Asadi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 12:20:05