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

执行makemigrations时触发NameError: name 'AUTH' is not defined错误求助

解决Django自定义User模型时的AUTH NameError问题

问题原因

错误提示明确指向settings.py第133行存在未定义的AUTH,这是因为该位置有一个单独的AUTH关键字——Django配置中不存在这个单独项,属于输入失误(比如输入AUTH_USER_MODEL时只写了一半,或是误留了多余的代码)。

解决步骤

  • 打开settings.py文件,定位到第133行,删除该行单独的AUTH单词;
  • 确认AUTH_USER_MODEL = 'accounts.User'配置无误:
    • accounts必须是你已添加到INSTALLED_APPS中的app名称;
    • User是你自定义的用户模型类名;
  • 重新执行命令:
    python manage.py makemigrations
    python manage.py migrate
    

额外注意

如果你的代码中未定义UserManager,后续执行命令时会触发新错误,需补充实现自定义用户管理器:

class UserManager(BaseUserManager):
    def create_user(self, email, name, password=None):
        if not email:
            raise ValueError('用户必须提供邮箱')
        email = self.normalize_email(email)
        user = self.model(email=email, name=name)
        user.set_password(password)
        user.save(using=self._db)
        return user

    def create_superuser(self, email, name, password):
        user = self.create_user(email, name, password)
        user.is_superuser = True
        user.is_staff = True
        user.save(using=self._db)
        return user

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 01:36:22