Google App Engine ndb 按 StringProperty 的长度排序



是否可以按 StringProperty 的长度对查询进行排序?我试过这个:

User.query(User.facebook_id = fb_id).order(-len(str(User.name))).fetch(10) 

但它向我显示错误:类型错误:order() 需要属性或查询订单;

您可以使用计算属性:

name_len = ndb.ComputedProperty(lambda self: len(self.name))

然后使用它进行查询:

User.query(User.facebook_id = fb_id).order(-User.name_len).fetch(10)

如果这不起作用,则需要添加一个IntegerProperty并将其设置为字符串的长度 ( name_len = ndb.IntegerProperty()

最新更新