是否有更简单的方法来选择和排序的权重?
fetchCount = 1000
date1 = datetime.datetime.utcnow().date()
entries = GqlQuery("SELECT * FROM Entry WHERE category = :category and date >= :datetime ORDER BY date, weight DESC", category = category, datetime = date1).fetch(fetchCount)
if entries is not None:
# Sort entries ( lazy way for now ).
sort = True
while sort:
sort = False
for i in range(0, len(entries)-1):
if entries[i].weight < entries[i + 1].weight:
e = entries[i + 1]
entries[i + 1] = entries[i]
entries[i] = e
sort = True发布于 2012-03-20 20:34:40
通过下列方式解决:
entries = GqlQuery("SELECT * FROM Entry WHERE category = :category and date > :datetime ORDER BY date, weight DESC", category = category, datetime = date1).fetch(fetchCount)
entries = sorted(entries, key=lambda x: x.weight, reverse=True)既然没有别的办法自动取款机..。
发布于 2012-03-21 17:11:12
数据存储的一个限制是,如果使用不等式筛选器(例如日期、>= :datetime),它也必须是您的第一个排序键。此外,每个查询只能有一个属性的不等式。因此,在您的情况下,您别无选择,只能在内存中对它们进行排序。另一个答案中的排序()调用是完美的。
https://stackoverflow.com/questions/9785351
复制相似问题