如何在App Engine中定义DateProperty对象

时间:2011-03-31 02:33:23

标签: python google-app-engine

我在创建dateproperty对象时遇到困难,我似乎无法创建对象。这是我的代码:

from google.appengine.ext import db

class Baby(db.Model):
    name = db.StringProperty()
    dob = db.DateProperty()

for i in Baby.all():
    delete(i)

Baby(name='wilson', dob=Date(year=1986,month=3,day=5)).put()

我的代码有什么问题吗?

感谢您的帮助。

2 个答案:

答案 0 :(得分:5)

DateProperty的值需要是datetime.date对象,如下所述:http://code.google.com/appengine/docs/python/datastore/typesandpropertyclasses.html#DateProperty

因此,您需要添加:

import datetime

并将dob = Date(year = 1986,month = 3,day = 5)更改为:

dob = datetime.date(year=1986, month=3, day=5)

答案 1 :(得分:0)

正如@Elliot所说,db.DateProperty()只接受datetime.date对象。要了解更多关于datetime的信息,你可以看到here。这个datetime.date属性为你提供了更多的灵活性和操作性。而且使用timedelta你可以做更多的操作,比如提前一天等等。 所以你必须导入日期时间为

from datetime import date
year=self.request.get['year']
month=self.request.get['month']
day=self.request.get['day']
dob=date(int(year),int(month),int(day))
baby=Baby()
baby.name='wilson'
baby.date=dob
baby.put()