Django:将DateTimeField的默认值定义为None或空白字段

时间:2018-12-11 09:54:32

标签: python django

我想在我的models.py文件中定义一个新字段。

案例1:

download_date = models.DateTimeField(verbose_name=_('download date'), null=True, default=None)

当对象保存到我的数据库中时,此字段应为NoneBlank字段。

如果我像上面那样写我的字段,它将给出:

  

“下载日期”列中的空值违反了非空约束

案例2:

如果我添加blank = True,则会遇到同样的问题

  

“下载日期”列中的空值违反了非空约束

我必须写什么才能得到一个空白/空字段?

谢谢

3 个答案:

答案 0 :(得分:1)

设置null = True和blank = True是这样做的方法。

但是在您的情况下,您说您确实运行了迁移。因此,似乎非空约束已存在于数据库中。

有时候,当您更改数据库架构,对迁移文件进行更改并且django无法正确检测到它并且报告未检测到更改时,您可能会遇到这种情况。

您可能需要查看数据库以进行验证。

可能,更简单的方法是创建新数据库并再次运行迁移。

答案 1 :(得分:0)

我找到了答案:我所做的很好,但是根据我的迁移文件,我遇到了一个问题。我删除了数据库并创建了一个新数据库,现在我可以正常工作。

答案 2 :(得分:0)

在您的情况下,可以将null和blank设置为True应该可以。