如何在Django DateField中将仅日期保存到Mongodb
我想在mongodb数据库中只保存日期。为此,我在django模型中使用了DateField。但是在数据库中,它保存的却是:
ISODate("2014-02-24T00:00:00Z")
我的代码
models.py:
class Newdate(models.Model):
today=models.DateField()
def __unicode__(self):
return self.today
views.py
def saveDate(request):
mydate=request.GET['today']
date=Newdate(today=request.GET['today'])
date.save()
result=Newdate.objects.all().values()
return HttpResponse(result)
该怎么办呢..?
我正在使用python 2.7和django 1.5.4
1 个回答
2
这实际上正是你想要的效果,尽管你可能觉得不是。让我来解释一下,你在mongo shell中看到的内容是这样的:
ISODate("2014-02-24T00:00:00Z")
但这并不是字段中的实际值,它只是shell的表现方式。所以它并不是你想象中的字符串值。
实际上,字段中的值是一个BSON日期,这是一种特别标记的时间值。这个格式非常有用,正是你真正想要的,因为服务器把它当作一个有效的日期,可以和其他日期进行比较,还可以对它进行各种日期操作等等。
而且,就像你的应用程序“刚刚保存了这个”原生日期对象一样,当你从集合中读取这个值时,你也会得到一个原生日期对象。
要避免的做法是把这些值转换成字符串,这样在你读取数据时又得转换回来。
坚持使用原生日期,这才是你真正想要的。