Как определить значение поля по умолчанию, но не на уровне базы данных? - PullRequest
0 голосов
/ 16 марта 2020

enter image description here

Я хочу иметь значение по умолчанию для текстового поля, рассчитываемого для пользователя. Например. Сейчас год = 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),
        ),

Как избежать применения жестко закодированных значений в файле миграции или установить вычисляемые значения в форме другим способом?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...