После разбиения файла models.py
, содержащего 3 модели, на 3 разных файла, я получил следующую ошибку при запуске make migrations
или migrate
:
(models.E022) .resolve_through_model в 0x105d74e18> содержит ленивую ссылку на products.itemsbyarticle, но приложение 'products' не предоставляет модель 'itemsbyarticle'. products.Article.items: (fields.E331) Поле указывает отношение «многие ко многим» через модель «ItemsByArticle», которая не была установлена.
Структура проекта: my_project> products> models > [article.py | item.py | items_by_article.py]
article.py
class Article(models.Model):
items = models.ManyToManyField('products.Item', through='ItemsByArticle', blank=True,
verbose_name=_('items'))
ПРИМЕЧАНИЕ. Вместо этого я попытался through='products.ItemsByArticle'
, та же ошибка.
item.py
class Item(models.Model):
# ...
items_by_article.py
class ItemsByArticle(models.Model):
class Meta:
unique_together = ('article', 'item')
article = models.ForeignKey('products.Article',
on_delete=models.CASCADE)
item = models.ForeignKey('products.Item',
on_delete=models.CASCADE,
verbose_name=_('item'))
Любопытно, когда запускаются юнит-тесты (а Django создает новая база данных), ошибки нет.