django 的 DateField 模型字段和可接受的值



我有一点麻烦与django的DateField模型字段。它不应该接受fiveDaysLater作为一个有效的日期对象吗?当我尝试将fiveDaysLater添加到数据库中时,我得到一个错误说cannot add null value to date。但是,当我将date字段更改为常规的CharField时,fiveDaysLater值将毫无问题地添加到数据库中。如果我打印fiveDaysLater,我得到2011-09-28

我的观点:

def myView():
    now = datetime.date.today()
    fiveDaysLater = now + datetime.timedelta(days=5)
    newDate = Speech(date = fiveDaysLater)
    newDate.save()

我的模型
class Speech(models.Model):
    date = models.DateField()

"然而,当我将日期字段更改为常规CharField时…"只是一种怀疑,但是如果您在代码中进行了此更改,请确保使用syncdb删除并重新创建Speech表,否则sqlite将不会意识到此更改。(或者您可以使用firefox的sqlite explorer或类似的东西更改数据类型…)