我的模型created_at = models.DateTimeField( auto_now_add = True )
中有此字段
当我尝试进行迁移时,出现错误:
You are trying to add the field 'created_at' with 'auto_now_add=True' to user wi
thout a default; the database needs something to populate existing rows.
1) Provide a one-off default now (will be set on all existing rows)
2) Quit, and let me add a default in models.py
我尝试设置默认值,但是它说default
和auto_now_add
是互斥的。当然,我可以只使用没有auto_now_add
的默认值,但我想知道为什么会弹出此错误。我错过了什么吗?
答案 0 :(得分:1)
您已经有一些没有created_at
值的行。
但是,当您添加以下字段并运行迁移
created_at = models.DateTimeField( auto_now_add = True)
它期望现有行具有created_at
值。因此,它会在迁移时警告您。
解决此问题。
您可以选择第一个选项Provide a one-off default now (will be set on all existing rows)
。
通过选择第一个选项,您正在寻求价值。在这里您可以输入timezone.now()
。它将使用当前时间戳填充现有行。
答案 1 :(得分:1)
删除app中的migration文件,可以在没有报错的时候进行migrtion进程,是之前创建的时间对象的原因导致的。