环境:python 3.9.2, Django 4.0.2
状态:
It is impossible to add a non-nullable field 'university' to userinfo without specifying a default、This is because the database needs something to populate existing rows.Please select a fix: 1) Provide a one-off default now (will be set on all existing rows with a null value for this column) 2) Quit and manually define a default value in models.py.Select an option:
原因:增加一个字段后,执行迁移命令,如下:
python manage.py makemigrations
执行该命令后,会在该应用的migrations目录下,生成sql文件。
发生该问题的原因推测是:该数据库中已有数据,新增字段后,已存在的数据该字段为空,导致的。
解决:在新增的字段内添加默认值(可能还有其它方法,我只是出现该问题,随手一记)如下:
university = models.CharField(max_length=50, verbose_name="大学", default="")
在后面添加一个default=""即可