django模型字段:为什么默认值不起作用?

时间:2014-10-13 01:36:32

标签: django

当我在PG指挥官中创建一个新行时 我让small_price为空,因为我认为我设置了默认值:0

small_price = models.IntegerField(default=0 )  

但是当我保存它有警报时:

Reason: null value in column "small_price" violates not-null constraint

为什么默认不起作用? 创建行时是否还需要输入0?

1 个答案:

答案 0 :(得分:0)

如果要自动生成迁移,则需要在实际应用迁移之前对其进行一些小的编辑。进入生成的迁移并查找参数:keep_default=False 在db.add_column调用中。

您必须将其更改为:keep_default=True

这样,Django会将您的默认值应用于实际的架构以及所有现有的行。