Django: Верните или обойдите "ValueError: Зависимость от приложения без миграций"
Пытаясь разделить модели в разных приложениях, я столкнулся с проблемой, для решения которой мне понадобится поддержка:
У меня есть 2 модели:
class SeriesCompletion(models.Model):
series = models.ForeignKey(
'Series', blank=True, null=True, on_delete=models.SET_NULL, )
user = models.ForeignKey(settings.AUTH_USER_MODEL, blank=True,
null=True, on_delete=models.SET_NULL,)
и
class Series(models.Model):
...
users_who_completed = models.ManyToManyField(
settings.AUTH_USER_MODEL, through='app1.SeriesCompletion',)
которые оба были расположены в app1
идея (которая хорошо работала в dev-среде) состояла в том, чтобы сделать dumpadata, переместить SeriesCompletion
в app2
и сделать миграции, затем loaddata для правильного заполнения
однако, при переходе в среду prod, я запустил миграцию app1
с моделью Series
со ссылкой на app2
:
class Series(models.Model):
...
users_who_completed = models.ManyToManyField(
settings.AUTH_USER_MODEL, through='app2.SeriesCompletion',)
Прошел в prod, а когда перешел к выполнению makemigration для app2, он заблокировался из-за циклической ссылки: ValueError: <function ManyToManyField.contribute_to_class.<locals>.resolve_through_model at 0x7f3e531f4400> contains a lazy reference to app2.seriescompletion, but app 'app2' isn't installed.
С тех пор я много чего пробовал, но я всегда блокирован, и я не могу двигаться вперед, делая миграцию для app1
или для app2
... или двигаться назад, возвращаясь к предыдущей миграции с app1
.
Я всегда заканчиваю проверку перед миграцией/ перед созданием миграций сообщением об ошибке:
ValueError: Dependency on app with no migrations
Есть светлая идея, которая поможет мне выбраться из этой передряги?