用mongoengine保存DateTimeField

use*_*564 5 django mongoengine

使用Django框架(1.3.1)和Mongoengine。

尝试保存发布的字段(截止日期)时,它会以

ValidationError(无法解析日期“ 2013-12-31”:['DueDate'])

但是,通过datetime.datetime.now()它保存日期时效果很好。搜索示例后,我没有选择了。

我的代码的相关部分(使用带有文本输入标签的普通HTML表单):

views.py

goal.DueDate = request.POST['duedate']
goal.save()
Run Code Online (Sandbox Code Playgroud)

models.py

class Goal(Document):
    DueDate = DateTimeField()
    last_update = DateTimeField(required=True)
Run Code Online (Sandbox Code Playgroud)

任何的想法?

更新(目前无法回答自己):

确定..找到了解决方案。键入它,显然提供了新的见解。

Goal.DueDate = datetime.datetime.strptime(request.POST ['duedate'],'%Y-%m-%d')

Léo*_*Léo 3

DateTimeField需要一个日期时间,而不是一个字符串。
如果格式是众所周知的,您可以像在更新中一样使用 strptime 或能够猜测格式的dateutilparse方法。

您还应该考虑采用从 Web 端以表单形式发送的更安全的 ISO 格式字符串。