为了通过ndb.IntegerProperty返回一个空列表

问题描述:

请看我下面的代码:为了通过ndb.IntegerProperty返回一个空列表

from google.appengine.ext import ndb 
class TestModel(ndb.Model): 
    num = ndb.IntegerProperty(required=False, default=0, indexed=False) 
    txt = ndb.StringProperty(required=True, indexed=False) 
class TestHandler(BaseHandler): 
    def get(self): 
     for i in range(0, 20): 
      m = TestModel(num=i, txt=' hello world ') 
      m.put() 
     data = TestModel.query().order(TestModel.num).fetch(20) # empty list! 
     data = TestModel.query().order(-TestModel.num).fetch() # empty list! 
     count = TestModel.query().count() # 20 
app = webapp2.WSGIApplication([ 
    ('/', TestHandler) 
], debug=True) 

我在做什么错? 我读过这篇文章https://developers.google.com/appengine/docs/python/ndb/queries?hl=ru#order

但我很困惑吧,请帮我这个

UDP: 它工作时testmodel实体超过20,如果你想订购

您通过TestModel.num的查询,您应该启用数据存储索引TestModel.num

num = ndb.IntegerProperty(required=False, default=0, indexed=True)

num = ndb.IntegerProperty(required=False, default=0)#默认索引=真

要在查询结果得到已经添加的实体,您需要重新把()所有这些实体。

有关数据存储索引的更多信息:https://developers.google.com/appengine/docs/python/datastore/indexes