It is impossible to add a non-nullable field ‘university‘ to userinfo without specifying a default.

环境: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 existi
ng 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=""即可

你可能感兴趣的:(Python后端,django)