Ну, есть много вариантов, как справиться с этой ситуацией.Можно было бы сначала просто добавить поле без значения по умолчанию и попросить Django создать соответствующую миграцию.Таким образом, ваша модель должна выглядеть следующим образом:
class FlagSetting(models.Model):
name = models.CharField(max_length=10)
flag = models.BooleanField()
Когда вы запускаете команду manage.py makemigrations
Django спросит, что делать, вы можете указать «одноразовое значение по умолчанию».Это значение будет использоваться для заполнения существующих экземпляров.Сделав это, код миграции, сгенерированный Django, установит предоставленное вами разовое значение по умолчанию для всех ранее существующих экземпляров.
После этого вам следует снова изменить модель, чтобы установить желаемое значение по умолчанию для вашего поля, чтобы вашмодель выглядит так:
class FlagSetting(models.Model):
name = models.CharField(max_length=10)
flag = models.BooleanField(default=False)
И тогда вам нужно снова запустить manage.py makemigrations
.На этот раз будет создана новая миграция для установки значения по умолчанию False
.Тогда каждый вновь созданный экземпляр будет иметь flag=False
по умолчанию.