Django ValueError: поле admin.LogEntry.user было объявлено с ленивой ссылкой на 'app.user', но приложение 'app' не предоставляет модель 'user'

У меня похожая проблема с этим сообщением, но единственный ответ на него не помог:

❯ python manage.py makemigrations
No changes detected

Потому что когда я выполняю python manage.py migrate, я получаю следующий трассировочный откат:

❯ python manage.py migrate

Operations to perform:
  Apply all migrations: admin, auth, blog, contenttypes, portfolio, sessions
  
Traceback (most recent call last):
  File "C:\Users\user\Projects\personal_website\src\packages\pweb_django\manage.py", line 23, in <module>
    main()
  File "C:\Users\user\Projects\personal_website\src\packages\pweb_django\manage.py", line 19, in main    execute_from_command_line(sys.argv)
  File "C:\Users\user\Projects\personal_website\pweb-venv\lib\site-packages\django\core\management\__init__.py", line 446, in execute_from_command_line
    utility.execute()
  File "C:\Users\user\Projects\personal_website\pweb-venv\lib\site-packages\django\core\management\__init__.py", line 440, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "C:\Users\user\Projects\personal_website\pweb-venv\lib\site-packages\django\core\management\base.py", line 414, in run_from_argv
    self.execute(*args, **cmd_options)
  File "C:\Users\user\Projects\personal_website\pweb-venv\lib\site-packages\django\core\management\base.py", line 460, in execute
    output = self.handle(*args, **options)
  File "C:\Users\user\Projects\personal_website\pweb-venv\lib\site-packages\django\core\management\base.py", line 98, in wrapped
    res = handle_func(*args, **kwargs)
  File "C:\Users\user\Projects\personal_website\pweb-venv\lib\site-packages\django\core\management\commands\migrate.py", line 236, in handle
    pre_migrate_apps = pre_migrate_state.apps
  File "C:\Users\user\Projects\personal_website\pweb-venv\lib\site-packages\django\utils\functional.py", line 49, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "C:\Users\user\Projects\personal_website\pweb-venv\lib\site-packages\django\db\migrations\state.py", line 544, in apps
    return StateApps(self.real_apps, self.models)
  File "C:\Users\user\Projects\personal_website\pweb-venv\lib\site-packages\django\db\migrations\state.py", line 615, in __init__
    raise ValueError("\n".join(error.msg for error in errors))

ValueError: The field admin.LogEntry.user was declared with a lazy reference to 'portfolio.user', but app 'portfolio' doesn't provide model 'user'.

Однако, когда я проверяю файл portfolio\models.py, он явно предоставляет 'user'-модель:

class User(AbstractUser):
    """Dummy class in order to mimic a standard Auth-user.

    Docs: https://docs.djangoproject.com/en/4.0/topics/auth/customizing/#using-a-custom-user-model-when-starting-a-project
    """
    pass

В соответствующем portfolio\admin.py - файле регистрируется следующий сайт администратора:

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from .models import User

admin.site.register(User, UserAdmin)

Я хотел бы понять, почему это не работает, в то время как другой класс модели может быть найден и зарегистрирован без проблем:

from django.contrib import admin
from .models import Project

admin.site.register(Project)

Это происходит, если вы запустили миграции auth app по умолчанию и позже изменили AUTH_USER_MODEL в settings.py. Вы можете попробовать следующее:

#comments AUTH_USER_MODEL in the settings.py file so it points to a default User Model

Python manage.py migrate auth zero

#Uncomment AUTH_USER_MODEL='recommend.AuthUser'

Python manage.py migrate auth

Источник

Если это не решит ваши проблемы и вы используете Sqlite3, вы можете:

Delete all migration files except __init__.py file.
Вернуться на верх