2011-11-01 35 views
2

在我的Django应用程序中,我有一个DateField(格式为'YYYY-MM-DD')。当我尝试保存字符串'2011-11-01'时,我得到没有错误,但我的字段获得NULL值。Django将字符串保存到日期字段

我试图用datetime和time库中的strptime函数做这件事,但是有同样的问题。基本上,这一切发生在一个形式

我有表单验证

 
    if form.valid(): 
     form.cleaned_data['date'] = year + '-' + month + '-' day 
     form.save() 

+0

请显示一些真实的代码。表单中有哪些字段?年,月,日来自哪里? –

回答

2

部分inclues清理数据。 cleaned_data字典包含python对象,而不是(字符串)发布数据。

所以form.cleaned_data['data']需要一个datetime对象(或你需要清洁之前,编辑表单或交的数据)

0

我认为你应该检查接受Date对象的模型对象,并确认您没有设置它总是为空......实际上我认为这个用词不当是存在的,不是在视图或保存方法中,而是在应该采用日期对象的模型对象中。也许你应该考虑在这里发布你的模型代码,以便我们看到。

+0

问题是我在form.cleaned_data中写入数据,看起来不正确。正确的方法是使f = form.save(commit = False),然后f.date = datetime(year,month,day),然后f.save()form.save_m2m()...谢谢大家,希望这对你也有帮助。 – bogtan

+0

我会做一些研究,看看我为什么做的方式不正确 – bogtan

相关问题