我需要针对一组具有日期字段的对象进行gql查询。我对python和GAE都很新,所以我对此有点讽刺。我正在查看文档,但找不到我想要的东西。基本上我已经制作了以下类方法
Event.getEventsForMonth(cls, month,year):
所以我试图查询我的对象,其中日期字段的月份和年份落在指定范围内。我试图创建一个日期对象并将其用于比较,但到目前为止我没有任何喜悦。
dateto = str(year)+str(month+1)+"01"
datefrom = str(year)+str(month)+"01"
if month + 1 == 13:
dateto = str(year+1)+"01"+"01"
query = GqlQuery("SELECT * FROM Event WHERE date >= :datefrom AND date <= :dateto", dateto=dateto, datefrom=datefrom)
return query
对我来说这个方法看起来很糟糕,因为我对Python内联的GQL查询可以使用的核心方法不太了解。
感谢任何帮助
干杯,
安德鲁
答案 0 :(得分:3)
首先,将日期存储为数据存储区中的DateProperty或DateTimeProperty实例。
然后,您可以执行以下查询:
def getEventsForMonth(self, month, year):
start_date = datetime.datetime(year, month, 1)
if month == 12:
end_date = datetime.datetime(year + 1, 1, 1)
else:
end_date = datetime.datetime(year, month + 1, 1)
return Events.all().filter('date >=', start_date).filter('date <=', end_date).fetch(1000)