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

Django创建超级用户时触发ValueError:字段'id'期望数字类型却传入邮箱地址

解决Django超级用户创建失败的ValueError及代码中的其他问题

我帮你排查了代码里的问题,这个ValueError: Field 'id' expected a number but got 'example@example.com'的根源和几个关键错误都找到了,下面一步步解决:

1. 超级用户创建失败的核心原因

这个错误直接来自myUserManager里的参数传递错误。在create_user方法中,你把email作为位置参数传给了self.model(),但由于你已经禁用了username字段,Django会错误地把这个字符串参数映射到数字类型的主键id字段,导致类型不匹配的报错。

修复用户管理器代码

修改models.py中的myUserManager.create_user方法:

def create_user(self, email, password, **extra_fields):
    """ Create and save a User with the given email and password. """
    if not email:
        raise ValueError(_('The Email must be set'))
    email = self.normalize_email(email)
    # 关键修正:将email作为关键字参数传递,而非位置参数
    user = self.model(email=email, **extra_fields)
    user.set_password(password)
    user.save(using=self._db)  # 加上using参数确保使用正确的数据库连接
    return user

2. 修复views.py中的多处逻辑错误

你的视图代码里还有几个会导致认证失效或逻辑走不通的问题:

2.1 首页用户状态判断错误

def index(request):
    # 错误:myUser是模型类,不能直接判断认证状态,要使用request.user
    if request.user.is_authenticated:
        message = f"signed in as {request.user.first_name}"
    else :
        message = "please sign in"
    return render(request, "auctions/index.html",{
        "listings": Listings.objects.all(),
        "message":message
    })

之前的myUser.is_authenticated完全错误,myUser是类,没有认证状态属性,必须用request.user获取当前请求的用户实例。同时你代码里的Customer模型不存在,改成request.user才能正确显示用户名。

2.2 登录视图的login函数调用错误

if user is not None:
    # 错误:login函数的第二个参数必须是user对象,不是email和password
    login(request, user)
    return HttpResponseRedirect(reverse('index'))

login()的正确用法是传入request和认证后的user对象,你之前传邮箱和密码会导致登录逻辑失效。

2.3 注册视图的请求方法判断错误

# 错误:应该判断request.method,而不是和字符串"POST"比较request.POST
if request.method == "POST":

request.POST是字典对象,和字符串"POST"比较永远为False,导致注册逻辑根本不会执行。

3. 重新执行迁移并创建超级用户

修复模型代码后,重新执行迁移确保修改生效:

python manage.py makemigrations
python manage.py migrate

之后再尝试创建超级用户:

python manage.py createsuperuser

这样就能解决创建超级用户的报错,同时修复视图中的逻辑问题,让用户认证流程正常工作。

内容的提问来源于stack exchange,提问作者Rahul Vishwakarma

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 10:22:40