Django 关于空白/空的时间域问题

Django 关于空白/空的时间域问题,django,django-models,Django,Django Models,我有一个模型(以及基于它的模型表单),它有几个时间域。我希望这些字段是可选的,以便用户可以保留一些空字段。我的问题是,当我试图保存一个实例,其中一个或多个字段为空时,我会继续收到“Column'mechreturn_tm'cannot be null”错误。我使用了以下方法: mechreturn_tm = models.TimeField(blank=True, null=False) mechreturn_tm = models.TimeField(blank=True, null=True

我有一个模型(以及基于它的模型表单),它有几个时间域。我希望这些字段是可选的,以便用户可以保留一些空字段。我的问题是,当我试图保存一个实例,其中一个或多个字段为空时,我会继续收到“Column'mechreturn_tm'cannot be null”错误。我使用了以下方法:

mechreturn_tm = models.TimeField(blank=True, null=False)
mechreturn_tm = models.TimeField(blank=True, null=True)
mechreturn_tm = models.TimeField()

似乎都不管用。我做错了什么?

您确定使用第二种方法(空白和空都设置为
True
)仍然会出现错误吗

请记住,进行此更改时需要重新创建DB表,因为syncdb不会更改现有表。这可能就是为什么即使使用正确的代码也会出现错误

在模型字段上设置
blank=True
意味着在使用该字段验证表单时,该字段允许为空

设置
null=True
意味着可以将模型保存到数据库,而不需要该字段的任何值


第二个
(blank=True,null=True)
应该可以工作。您是否删除了模型的表并再次运行了
syncdb
?尝试在db shell中执行
description
manage.py sql
以查看它将如何创建表。谢谢John和Tcarbruce。我认为这就是问题所在,因为每次更改后我都在尝试syncdb,而没有先删除表。将删除,然后用修改后的代码重新创建表。再次感谢。mechreturn_tm=models.TimeField(blank=True,null=True)工作正常。