
Я хочу иметь значение по умолчанию для текстового поля, рассчитываемого для пользователя. Например. Сейчас год = 2020, поэтому выбор пользователя будет 2020 и 2021 в раскрывающемся поле. Но в следующем году (2021) я хочу, чтобы значения 2021 и 2022 были единственно возможными.
Поле определяется следующим образом в models.py:
year = models.CharField(default=default_year(), max_length=4, choices=year_choices(), )
где:
def default_year():
return str(datetime.now().year)
def year_choices():
current_year = datetime.now().year
years = []
years.append([str(current_year), str(current_year)])
years.append([str(current_year + 1), str(current_year + 1)])
return tuple(years)
Так что пока работает, но из-за миграции не изменится в следующем году, верно?
Что вызывает проблемы при миграции:
migrations.AlterField(
model_name='movie',
name='year',
field=models.CharField(choices=[['2020', '2020'], ['2021', '2021']], default='2020', max_length=4),
),
Как избежать применения жестко закодированных значений в файле миграции или установить вычисляемые значения в форме другим способом?