У меня есть приложение ядра django, называемое "foocore" .
Существует несколько дополнительных подключаемых приложений. Например, "superfoo".
В моем случае каждый плагин добавляет новый выбор в модель CharField, которая принадлежит к "foocore" .
Миграции Django обнаруживают изменения, если список вариантов изменяется.
Я думаю, что это не обязательно. По крайней мере один другой разработчик думает так же:
https://code.djangoproject.com/ticket/22837
class ActivePlugin(models.Model):
plugin_name = models.CharField(max_length=32, choices=get_active_plugins())
Код для выбора:
class get_active_plugins(object):
def __iter__(self):
for item in ....:
yield item
Ядро "foocore" используется в нескольких проектах, и каждая установка имеет другой набор плагинов. Django пытается создать бесполезные миграции....
Есть ли способ обойти это?