Django:在数据库中将datetime.date的值保存为null时出现问题

Django:在数据库中将datetime.date的值保存为null时出现问题,django,python-2.7,datetime,django-models,django-views,Django,Python 2.7,Datetime,Django Models,Django Views,我的表单如下所示: 如果选中“进行中”框,我希望在保存表单时MySQL数据库中的“结束日期”为空 在我的模型中,允许保存null值(我想?): end\u date=models.DateField(默认值=datetime.date,blank=True,null=True) 我不知道这是否是最好的方法,但在我的views.py中,我有这样一行: if request.POST.get('end_year') == '- Year -': end_date = datetime.da

我的表单如下所示:

如果选中“进行中”框,我希望在保存表单时MySQL数据库中的“结束日期”为空

在我的模型中,允许保存null值(我想?):

end\u date=models.DateField(默认值=datetime.date,blank=True,null=True)

我不知道这是否是最好的方法,但在我的views.py中,我有这样一行:

if request.POST.get('end_year') == '- Year -':
    end_date = datetime.date(None, None, None)
(我也会有类似的月和日支票)

但当我试图提交我的表单时,我得到了“一个整数是必需的”异常

作为一些附加信息,当我手动尝试在db中将end_date更改为null时,我得到以下错误:
不正确的日期值:第1行“end_date”列的“null”


我真的不确定最好的方法是什么。任何想法都将不胜感激。多谢各位

在我看来,如果您从
结束日期
字段中删除
默认值
,您就会没事了

end_date = models.DateField(blank=True, null=True)
现在,如果您的表单上正在进行此操作,则不要向
end\u date
字段提供任何数据。我想说你不应该这样做

end_date = datetime.date(None, None, None)

但是,由于此字段没有模式
默认值
,因此当它没有进行时,只需从视图或表单中向其提供初始数据。

在我看来,如果从
结束日期
字段中删除
默认值
,就可以了

end_date = models.DateField(blank=True, null=True)
现在,如果您的表单上正在进行此操作,则不要向
end\u date
字段提供任何数据。我想说你不应该这样做

end_date = datetime.date(None, None, None)

但是,由于此字段没有模式
默认值
,因此在未进行时,只需从视图或表单向其提供初始数据。

我认为您应该检查以下内容:

  • end\u date=models.datetime字段(blank=True,null=True)

  • 在将结束日期字段更新为空时,只需像
    end\u date=None
    这样查询,而不必执行
    end\u date=datetime.date(None,None,None)


  • 我认为您应该检查以下内容:

  • end\u date=models.datetime字段(blank=True,null=True)

  • 在将结束日期字段更新为空时,只需像
    end\u date=None
    这样查询,而不必执行
    end\u date=datetime.date(None,None,None)


  • python中没有
    null
    ,因此它不知道应该将其映射到
    None
    ,django ORM知道在生成sql时将其视为db null。尝试从html/js发送一个空值。从何处获得该错误?请使用回溯发布整个错误。在python中没有
    null
    ,因此它不知道应该将其映射到
    None
    ,django ORM知道在生成sql时将其视为db null。尝试从html/js发送一个空值。从何处获得该错误?请用回溯法发布整个错误。