Django框架-python manage.py makemigrations提示
问题描述:在执行 Django 迁移时,提示:You are trying to add a non-nullable field 'record_id' to record without a default; we can't do that (the database needs something to populate existing rows).
翻译:你在尝试向 record表
添加一个非空字段 record_id
,我们无法做到(数据库需要向已存在行存入一些数据)
–
这里提供了两个选项:
1) Provide a one-off default now (will be set on all existing rows with a null value for this column)
我们自己提供一个值,这个值会被填入已存在的行的这列中
2) Quit, and let me add a default in models.py
选择退出,并且手动在模型中添加一个默认值
这里推荐使用第二种方式,自己手动到提示信息所指向的那个模型中的那个字段,去添加 default
参数。
class record(models.Model): # 记录
record_id = models.CharField('记录编号', default='', max_length=20, primary_key=True) # 记录编号
-
为什么不用第一种:
选择第一种方式,他会让你输入 python 代码,去设置默认值,并且这个默认值会被直接应用到迁移文件中,不会在 models.py 文件中修改,这样对其他人查看你的 models.py 文件很不友好。