0

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

我该怎么办:您正在尝试将 customuser 上的可为空字段“电子邮件”更改为不可为空而没有默认值;我们不能这样做(数据库需要一些东西来填充现有的行)。请选择一个修复:

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

这是我的 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)
4

1 回答 1

1
class CustomUser(AbstractUser):
   email = models.EmailField(unique=True ,null =True)
  # your other fields

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

于 2022-01-10T09:08:31.417 回答