我的app-engine查询出现问题。当我运行没有排序顺序的查询时,一切正常:
q = models.Contact.all();
q.filter("location = ", x);
if(cur_search_cursor != None):
q.with_cursor(cur_search_cursor);
results = q.fetch(limit = max_fetch)
cursor = q.cursor();
上述查询正确返回值。但是,如果我只是在第一行添加排序顺序,则根本不会返回任何内容:
q = models.Contact.all().order('name');
q.filter("location = ", x);
if(cur_search_cursor != None):
q.with_cursor(cur_search_cursor);
results = q.fetch(limit = max_fetch)
cursor = q.cursor();
不会引发异常,但也不会返回任何实体。我的代码中有错误吗?或者我是否必须在index.yaml文件中执行一些特殊操作才能使其正常工作?
我在关闭sqlite的dev_server上尝试这个。我还没有尝试在实际的GAE上进行测试。
答案 0 :(得分:4)
想出来......'name'字段是TextProperty。根据文档,TextProperty不可订购: http://code.google.com/appengine/docs/python/datastore/typesandpropertyclasses.html
这浪费了三个小时。