Я использовал другой прием, который сработал просто из-за формата, в котором мне нужны были мои данные (список диктовок). В этом случае я запускаю запрос на основе даты и времени, создаю dicts из возвращенных энтов, а затем сортирую по числовому свойству counter. Изменение вида дало мне нисходящий порядок. Имейте в виду, что я запросил только 10 результатов в довольно небольшом хранилище данных.
q = food.Food.all()
q.filter("last_modified <=", now)
q.filter("last_modified >=", hour_ago)
ents = q.fetch(10)
if ents:
results = [{
"name": ent.name,
"counter": ent.counter
} for ent in ents]
# reverse list for 'descending' order
results.sort(reverse=True)
Пример результата:
[{'counter': 111L, 'name': u'wasabi'}, {'counter': 51L, 'name': u'honeydew'}, {'counter': 43L, 'name': u'mars bar'}, {'counter': 37L, 'name': u'scallop'}, {'counter': 33L, 'name': u'turnip'}, {'counter': 29L, 'name': u'cornbread'}, {'counter': 16L, 'name': u'mackerel'}, {'counter': 10L, 'name': u'instant coffee'}, {'counter': 3L, 'name': u'brussel sprouts'}, {'counter': 2L, 'name': u'anchovies'}]