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进行修改。

相关推荐
威联通安全存储4 分钟前
某大型电力装备制造企业:基于威联通NAS的核心图纸保护与数据治理实践
python
数据皮皮侠8 分钟前
1095 《中国城市统计年鉴》面板数据整理
大数据·数据库·人工智能·算法·制造
Bat U22 分钟前
MySQL数据库|CRUD
数据库·mysql
弹简特25 分钟前
【JavaEE】MybatisPlus速成
java·数据库·java-ee·mybatis
Kang.Charles28 分钟前
python读取环境变量
python
Birdy_x28 分钟前
Python进阶(1)- logging
python
SeanDe33 分钟前
Canal 详解 + Canal+Redis 缓存一致性完整方案
数据库·redis·缓存
飞翔的烤鸡翅33 分钟前
Kilo Code在PyCharm上的一些实践
ide·python·pycharm·ai编程·kilo code
qq_3928079535 分钟前
Qt 注册 C++ 给 QML 调用的几种方式
数据库·c++·qt
程序员夏末36 分钟前
【MySQL | 第二篇】 MVCC的底层实现(多版本并发控制)
数据库·sql·mysql