【发布时间】:2017-09-13 09:27:02
【问题描述】:
我在模型上有一个字段是:
class SomeModel(models.Model):
some_field = models.CharField(max_length=10, null=True, blank=True)
然后我将模型更改为:
class SomeModel(models.Model):
some_field = models.CharField(max_length=10, default='')
当我运行 django-admin sqlmigrate somemodels somemigration 来检查我的迁移时,我发现了以下变化:
ALTER TABLE "somemodels" ALTER COLUMN "some_field" SET DEFAULT '';
UPDATE "somemodels" SET "some_field" = '' WHERE "some_field" IS NULL;
ALTER TABLE "somemodels" ALTER COLUMN "some_field" SET NOT NULL;
ALTER TABLE "somemodels" ALTER COLUMN "some_field" DROP DEFAULT;
我不明白为什么 Django 在表中应用DROP DEFAULT,因为我正在创建一个默认值。如果正确,Django 是如何实现默认值的?
关于我的工具的信息:
- Postgresql 9.5;
- Django 1.11b1;
【问题讨论】:
标签: python sql django postgresql django-models