Подтвердить что ты не робот

Почему Django South требует значения по умолчанию при удалении поля?

Когда я удаляю поле NOT NULL с использованием Django South, я получаю следующее сообщение:

? The field 'VisitOrder.end_date' does not have a default specified, yet is NOT NULL.
? Since you are removing this field, you MUST specify a default
? value to use for existing rows. Would you like to:
?  1. Quit now, and add a default to the field in models.py
?  2. Specify a one-off value to use for existing columns now
?  3. Disable the backwards migration by raising an exception.
? Please select a choice: 

Почему Юг нуждается в этом, учитывая, что он все равно удалит поле?

4b9b3361

Ответ 1

Django South позволяет перемещаться вперед или назад через миграцию. Итак, если вы когда-либо решили отменить миграцию, Юг восстановил бы все поля, которые были удалены. Вот почему Юг спрашивает, хотите ли вы указать значение по умолчанию или "отключить миграцию назад, создав исключение".