您正在尝试将 customuser 上的可空字段 'email' 更改为不可空且没有默认值

You are trying to change the nullable field 'email' on customuser to non-nullable without a default

我的 models.py 中有两个模型(UserAddress 和 CustomUser),CustomUser 中的字段用户地址是多对多字段,但我决定将其更改为外键字段。但是当我 运行 python manage.py 进行迁移时,它要求我选择一个选项:

我该怎么办: 您正在尝试将 customuser 上的可空字段 'email' 更改为非默认的不可空字段;我们不能那样做(数据库需要一些东西来填充 exis 婷行)。 请 select 修复:

  1. 现在提供一次性默认值(将在所有现有行上为此列设置空值)
  2. 暂时忽略,让我自己处理带有 NULL 的现有行(例如,因为您添加了 RunPython 或 RunSQL 操作来处理先前数据中的 NULL 值 迁移)
  3. 退出,让我在models.py
  4. 中添加一个默认值

这是我的 models.py 文件:

class UserAddress(models.Model):
    city = models.CharField(max_length=100)
    address = models.CharField(max_length=200)
    zip_code = models.CharField(max_length=15, blank=True)

    def __str__(self):
        return str(self.id)


class CustomUser(AbstractUser):
    first_name = models.CharField(max_length=50)
    last_name = models.CharField(max_length=50)
    email = models.EmailField(unique=True)
    user_address = models.ForeignKey(UserAddress, on_delete=models.CASCADE)
class CustomUser(AbstractUser):
   email = models.EmailField(unique=True ,null =True)
  # your other fields

运行 python manage.py makemigrationspython manage.py migrate 命令。错误将被删除。