Поле items.Item.owner было объявлено с ленивой ссылкой на 'items.user', но приложение 'items' не предоставляет модель 'user'

Я расширил модель User Django с помощью AbstractUser и указал AUTH_USER_MODEL = 'items.User' в моем settings/base.py, затем я переназначил все FK на 'items.User' (был User до изменения), но я получаю эту ошибку в каждом классе, который я упомянул 'items.User', когда я запускаю python manage.py migrate

Приближение 1

======items/models.py=======
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
    bio = models.TextField(max_length=500, null=True, blank=True)
    birth_date = models.DateField(null=True, blank=True)
    address = models.CharField(max_length=100,null=True, blank=True)
-----------------------------------------------
======core/settings/base.py=======
....
ALLOWED_HOSTS = []
AUTH_USER_MODEL = 'items.User'
....
-----------------------------------------------
=====contracts/models.py=======

class Contract(models.Model):
    .......
    owner = models.ForeignKey('items.User', on_delete=models.CASCADE)
    .........

Подход 2 Я импортировал модель User из core.settings.base.py

======core/settings/base.py=====
....
ALLOWED_HOSTS = []
AUTH_USER_MODEL = 'items.User'
....
-----------------------------------------------
=======contracts/model.py=====
from core.settings.base import AUTH_USER_MODEL
User = AUTH_USER_MODEL

class Contract(models.Model):
    .......
    owner = models.ForeignKey('items.User', on_delete=models.CASCADE)
    .........

и все еще получаю ту же ошибку, нужно ли мне сбросить Db или что-то еще, потому что я начинаю думать о конфликте с файлом миграций с новым изменением (что-то вроде проблемы циркуляции)!!!????

Вы использовали 'items.user' (со строчной буквы) в вашей модели Item (не в модели Contact), отсюда и ошибка: должно быть 'items.User' (с прописной буквы). Но это не то, как вы должны ссылаться на пользователя. Как говорится в разделе <ссылка на модель пользователя> документации, вы должны работать с настройкой AUTH_USER_MODEL, так:

from django.conf import settings

class Contract(models.Model):
    # …
    owner = models.ForeignKey(
        settings.AUTH_USER_MODEL,
        on_delete=models.CASCADE
    )
    # …

Вы, таким образом, нессылаетесь core.settings.base напрямую, но позволяете конфигурационной модели Django загрузить настройки, преобразовать их в неизменяемый объект, а затем использовать AUTH_USER_MODEL настройки [Django-doc] из этого объекта. Это также приведет к возврату к значению по умолчанию для данной настройки, если вы не укажете ее.

Вы должны сделать это для всех моделей, которые ссылаются на модель пользователя (поэтому Item тоже).

Вернуться на верх