【问题标题】:AUTH_USER_MODEL reference in settings.py Djangosettings.py Django 中的 AUTH_USER_MODEL 参考
【发布时间】:2022-07-19 21:02:19
【问题描述】:

我安装了一个名为“Login”的应用程序,其中有一个文件夹“models”,其中包含一个 custom_user 模型。当我尝试配置 settings.py,特别是 auth_user_model 时出现问题。

在已安装的应用程序中,我有以下内容:

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'corsheaders',
'project_app.login'

]

及以下

AUTH_USER_MODEL = 'login.models.CustomUser'

但我有以下错误:“无效的模型引用。字符串模型引用必须采用 'app_label.ModelName' 的形式。”我将 .models 放在 AUTH_USER_MODEL 中,因为我想在 Login 中引用 CustomUser 位于文件夹“models”中的应用程序。

另外,我尝试过这样声明:

AUTH_USER_MODEL = 'login.CustomUser'

但错误是这样的:'AUTH_USER_MODEL 指的是尚未安装的模型'login.CustomUser''

【问题讨论】:

    标签: django authentication settings


    【解决方案1】:

    问题在于您的应用安装方式 - 根据您的AUTH_USER_MODELlogin 应该是应用的名称。出于组织目的在文件夹中包含 Django 应用程序是可以接受的 - 但是,您的父文件夹是 project_app,从名称上看,它似乎也是一个应用程序。在不知道您的项目结构的情况下很难确定问题出在哪里,但我希望将您安装的应用程序更改为 project_app 并且您的 AUTH_USER_MODELproject_app.CustomerUser 应该可以工作。

    【讨论】:

      【解决方案2】:

      如果您的应用名称为“login”,您可以如下进行:

      INSTALLED_APPS = [
      'django.contrib.admin',
      'django.contrib.auth',
      'django.contrib.contenttypes',
      'django.contrib.sessions',
      'django.contrib.messages',
      'django.contrib.staticfiles',
      'rest_framework',
      'corsheaders',
      
       #apps
      'login.apps.LoginConfig']
      

      我认为您的登录应用程序中的模型如下:

      class CustomUser(AbstractBaseUser):
          #some fields for customuser
      

      在settings.py中:

      AUTH_USER_MODEL = 'user.CustomUser'
      AUTH_USER_MODEL = 'app_name.ModelName'
      

      【讨论】:

        猜你喜欢
        • 2015-07-28
        • 2014-12-14
        • 2020-10-30
        • 2013-05-24
        • 2015-07-23
        • 2021-07-18
        • 1970-01-01
        • 2021-01-22
        • 2012-12-01
        相关资源
        最近更新 更多