Django框架-python manage.py makemigrations提示

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,我们无法做到(数据库需要向已存在行存入一些数据)


Django框架-python manage.py makemigrations提示
这里提供了两个选项:

  • 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 文件很不友好。
    Django框架-python manage.py makemigrations提示
上一篇:PyTorch学习笔记 5.torchvision库


下一篇:13-day08-项目开发-wiki开发