Как упоминалось в предыдущих ответах, механизм по умолчанию в django реализован в модельном классе и не относится к миграции на юг.
Кроме того, поскольку юг 0,8, флаг keep_default
устарела и не добавит значение по умолчанию для вашей модели.
Чтобы решить эту проблему, я пишу пользовательскую миграцию для добавления значения по умолчанию.Вы можете сделать это, создав отдельную миграцию данных :
./manage.py datamigration your_app_name migration_name
и добавив следующую строку в функцию forwards
:
orm.YourModel.objects.update(field_name = DEFAULT_VALUE)
В качестве альтернативы, вместоДля создания новой миграции вы можете изменить исходную миграцию:
- добавить
no_dry_run = True
к самому классу (чтобы у вас был доступ к ORM). - добавить
orm.YourModel.objects.update(field_name = DEFAULT_VALUE)
до конца функции forwards
.
Таким образом, вам не нужно писать обратную миграцию, потому что у вас уже есть исходный столбец удаления.