我想只在mongodb数据库中保存日期。因为我在django models中使用了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
答案 0 :(得分:1)
即使您认为这不是它正在做的事情,这也正是您希望它做的事情。为了解释,这是你在mongo shell中看到的:
ISODate("2014-02-24T00:00:00Z")
但 实际上是字段中的值,它只是shell代表它的方式。所以它不是你想象的字符串值。
在字段内部,值为BSON日期,这是特殊时间值的特殊标记版本。这是非常有用,以及您真正想要的,因为它被服务器视为正确的日期,并且可以与其他日期值进行比较,对其执行不同的日期操作,等等。
同样正如您的应用程序“刚刚保存此内容”不提供本机日期对象一样,当从集合中读回时,您将还获取本机日期对象
不要做的是将这些转换为应用程序中的字符串,因此在读取数据时必须转换回来。
坚持使用原生日期,这就是你真正想要的。