Django将字符串保存到日期字段

Posted

技术标签:

【中文标题】Django将字符串保存到日期字段【英文标题】:Django save string to date field 【发布时间】:2011-12-19 10:26:21 【问题描述】:

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

我尝试使用 datetime 和 time 库中的 strptime 函数来做到这一点,但遇到了同样的问题。基本上这一切都以一种形式发生

我有

如果 form.valid(): form.cleaned_data['date'] = 年 + '-' + 月 + '-' 日 form.save()

【问题讨论】:

请展示一些真实的代码。表格中有哪些字段?年月日从何而来? 【参考方案1】:

表单验证的一部分包括清理数据。 cleaned_data dict 包含 python 对象,而不是(字符串)发布数据。

所以form.cleaned_data['data']需要是datetime对象(或者你需要在清理之前编辑表单或发布数据)

【讨论】:

【参考方案2】:

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

【讨论】:

问题是我在form.cleaned_data中写入数据,似乎不正确。正确的方法是让 f = form.save(commit=False) 然后 f.date = datetime(year,month,day) 然后 f.save() form.save_m2m()...谢谢大家和希望这对你也有帮助。 我会做一些研究,看看为什么我的做法不正确

以上是关于Django将字符串保存到日期字段的主要内容,如果未能解决你的问题,请参考以下文章

将日期字段保存到 Parse:键的类型无效,预期日期,但得到字符串

在java中如何将日期字符串保存到Oracle数据库中对应的Date类型字段中

将大型 json 字符串从 Javascript 发布到 Django

是否可以将路径字符串作为 django 文件字段的参数?

从firestore查询数据时,如何将保存的字符串格式的日期与当前日期进行比较?

将日期时间字符串解析为 Django DateTimeField