Ho un'app core di django chiamata "foocore".Arresta Django dalla creazione di migrazioni se l'elenco delle scelte di un campo cambia
Esistono diverse app plug-in opzionali. Ad esempio "superfoo".
Nel mio caso ogni plugin aggiunge una nuova scelta in un modello CharField che appartiene a "foocore".
Le migrazioni di Django rilevano le modifiche se l'elenco delle scelte viene modificato.
Penso che questo non sia necessario. Almeno un altro sviluppatore pensa lo stesso:
https://code.djangoproject.com/ticket/22837
class ActivePlugin(models.Model):
plugin_name = models.CharField(max_length=32, choices=get_active_plugins())
Il codice per ottenere le scelte:
class get_active_plugins(object):
def __iter__(self):
for item in ....:
yield item
Il nucleo "foocore" viene utilizzato in diversi progetti e ogni installazione ha un diversi set di plugin. Django cerca di creare migrazioni inutili ....
C'è un modo per aggirare questo?
Sì questa è una caratteristica terribile. Condivido il tuo dolore. – demux