Я пытаюсь изменить значение в settings.py
во время выполнения при создании миграций.
settings.py:
...
magicVar = "initValue"
0002_init:
...
def change_magicVar(apps, schema_editor):
settings.magicVar = "newValue"
...
operations = [
migrations.RunPython(change_magicVar),
]
...
0003_changed_migrations:
...
def print_magicVar(apps, schema_editor):
# Yay! It prints the correct value
print (settings.magicVar) # prints: newValue
...
operations = [
migrations.RunPython(print_magicVar),
migrations.CreateModel(
name='MagicModel',
fields=[
('someMagic',
models.ForeignKey(
# Oops! This still has the old value, i.e *initValue*
# I want to achieve the *newValue* here!
default=settings.magicVar,
...
)),
Я хочу изменить значение в миграциях, но похоже, что значение уже кэшировано.Предоставляет ли django абстракцию для обновления кэша миграций и добавления в него нового значения?Если нет, какие возможные варианты мне нужно для достижения этого значения по умолчанию?
Примечание: Я пытаюсь избежать этого решения , потому что моя база данных может дать миллионызаписей и итераций по ним не идеально.
По внешним причинам я также стараюсь избегать django-livesettings
Спасибо!