Django.core.exceptions.ImproperlyConfigured: AUTH_USER_MODEL ссылается на модель 'app.User', которая не была установлена
Этот вопрос задавался много раз, но я задаю его, потому что все еще не могу найти никакого рабочего решения. Я пытаюсь создать пользовательскую модель пользователя с помощью AbstractBaseUser
внутри приложения myapp
, я написал имя приложения внутри INSTALLED_APPS
и команду AUTH_USER_MODEL = 'myapp.User'
внутри settings.py
. Команда python manage.py makemigrations --dry-run
работает отлично без ошибок, когда моя пользовательская модель пользователя хранится в стандартном расположении файла модели по адресу backend/myapp/models.py
, но я хочу переименовать и переместить этот файл в каталог backend/myapp/models/user.py
и сохранить его вместе с другими моделями. Всякий раз, когда я пытаюсь переместить или переименовать файл backend/myapp/models.py
, содержащий мою пользовательскую модель, Django выдает ошибку django.core.exceptions.ImproperlyConfigured
. Нужна помощь. Спасибо
backend/myapp/models.py:
from django.db import models
from django.contrib.auth.models import AbstractBaseUser
class User(AbstractBaseUser):
id = models.CharField(max_length=15, null=False, blank=False, primary_key=True, unique=True)
USERNAME_FIELD = "id"
Current folder structure:
[backend]/
├── [core]/
│ ├── __pycache__/
│ ├── __init__.py
│ ├── asgi.py
│ ├── settings.py
│ ├── urls.py
│ ├── wsgi.py
├── [env]/
├── [myapp]/
│ ├── __pycache__/
│ ├── migrations/
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── models.py
├── manage.py
django.core.exceptions.ImproperlyConfigured:
В settings.py
Добавить myapp
в INSTALLED_APPS
INSTALLED_APPS = [
...,
'myapp',
]
I User
model add app_label = 'myapp' like
class User(AbstractBaseUser):
id = models.CharField(max_length=15, null=False, blank=False, primary_key=True, unique=True)
USERNAME_FIELD = "id"
class Meta:
app_label = 'myapp'
Если вы хотите перенести модель в отдельный файл. Структура каталога должна иметь вид
myapp
models
__init__.py
user.py
Поместите код модели пользователя в user.py
Затем импортируйте модель User
в __init__.py
from myapp.models.user import User
__all__ = ["User"]