Django数据库选移的preserve_default=False是什么意思?

有下面的迁移命令:

python 复制代码
        migrations.AddField(
            model_name='movie',
            name='mov_group',
            field=models.CharField(default=django.utils.timezone.now, max_length=30),
            preserve_default=False,
        ),

迁移命令中的preserve_default=False是什么意思呢?

答:如果模型定义中定义了这个字段的值不能为空,那么在创造模型时如果数据库中已有记录,则会让你为已经有的行提供默认值, 这个默认值在命令行时通常只能填为timezone.now,自己手动填一个值会报错。

preserve_default=False表示当这个模型创造成功后,你后续新建行时的默认值就不再使用刚才指定的默认值了,而由用户来指定了。就是这个意思。这也通常是用户的意思,所以一般在修改数据库迁移命令行时,并不会对语句preserve_default=False进行修改。

相关推荐
互联网中的一颗神经元1 分钟前
小白python入门 - 39. 采集流水线小项目
开发语言·python
Sirens.3 分钟前
MySQL表设计进阶-约束范式连接索引与事务
android·数据库·mysql
郭老二1 小时前
【Python】常用模块:xmlrpc
python
名字还没想好☜1 小时前
Python itertools 实战:用 groupby、chain、islice 优雅处理大数据流
linux·windows·python·迭代器·itertools
字节跳动开源1 小时前
火山引擎开源 Agent 驱动的搜索自迭代技术
数据库·开源·agent
威联通网络存储2 小时前
TS-h2490FU在面板制造Array段AOI缺陷画廊中的并联
python·制造
接针3 小时前
UV 常用命令
python·uv
Oo大司命oO3 小时前
藏在正则表达式里的陷阱
数据库·mysql·正则表达式
无垠的广袤4 小时前
【工业树莓派 CM0 Dev Board】扩展板设计
linux·python·嵌入式硬件·pcb设计·模块化·传感器
_oP_i4 小时前
mysql统计数据库使用存储大小
数据库