django外键createsuperuser报错django.db.utils.IntegrityError: (1048, "Column 'user_group_id' cannot be

migrations和migrate都没有问题,在createsuperuser最后输完密码点了回车之后报错:
class UserInfo(AbstractUser):
    '''
    用户信息表
    '''
    mobile = models.CharField(max_length=11, verbose_name='手机号')
    # 工号 / int
    operator_id = models.CharField(null=True, verbose_name='工号', max_length=20)
 
    # 所属组 / 外键 - 组
    user_group = models.ForeignKey('GroupInfo', related_name='group_member', to_field='group_id',
                                   on_delete=models.CASCADE, null=False)

class GroupInfo(models.Model):
    '''
    小组信息
    '''
    GROUP_CATEGORY_CHOICES = (
        ('new_staff', '新员工班组'),
        ('old_staff', '非新员工班组'),
        ('other', '其他')
    )
    group_id = models.IntegerField(verbose_name='组id', null=False, unique=True)
    group_name = models.CharField(verbose_name='组名', max_length=30)

migrations和migrate都没有问题,在createsuperuser最后输完密码点了回车之后报错:

django.db.utils.IntegrityError: (1048, "Column 'user_group_id' cannot be null")

试过删除migrations文件和表,重新运行都没有用

createsuperuser 命令创建用户时,只设置账号、密码、邮箱,没设置user_group。
你应该是在settings里配置了用户走UserInfo,而不是原有的User表。UserInfo表中,user_group 是非空字段,所以createsuperuser 执行肯定失败。

如果想创建super user,只能在admin页面手动创建。或者在执行完createsuperuser后,再migrate生成UserInfo。

报错的时候python会说"in file ... raise ...Error",你看看in file后面的文件名和报错的函数或者raise语句,然后找到这个文件,找一下叫user_group_id的变量或参数