Ссылка на AUTH_USER_MODEL в settings.py Django
У меня установлено приложение под названием '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, потому что я хочу ссылаться на приложение, что CustomUser находится внутри папки "models" в Login.
Также, я пробовал с декларацией следующим образом:
AUTH_USER_MODEL = 'login.CustomUser'
но ошибка следующая: 'AUTH_USER_MODEL ссылается на модель 'login.CustomUser', которая не была установлена'
Проблема заключается в способе установки вашего приложения - исходя из вашего AUTH_USER_MODEL
, login
должно быть именем приложения. Допустимо содержать приложения Django в папках в целях организации - однако, вашей родительской папкой является project_app
, которая, судя по названию, также является приложением. Трудно сказать наверняка, в чем проблема, не зная структуры вашего проекта, но я ожидаю, что изменение установленных приложений на project_app
и AUTH_USER_MODEL
на project_app.CustomerUser
должно сработать.
Если название вашего приложения "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'