我有这样的事情:
class Book(ndb.Model):
date=ndb.DateProperty()
title=ndb.StringProperty()
content=ndb.TextProperty()
class User(ndb.Model):
username=ndb.StringProperty()
name=ndb.StringProperty()
city=ndb.StringProperty()
books=ndb.StructuredProperty(Book, repeated=True)
这个想法是让几个用户和每个用户有几本不同的书。
获得用户对象后:
user=User.query(User.username=="pepo").get()
我可以轻松获得该用户的书籍清单:
user.books
但是,我怎样才能获得按该用户日期排序的图书清单?或者一般来说,对结构化属性的任何查询都与我实际拥有的用户有关。
答案 0 :(得分:4)
获得用户对象后,可以将books
属性视为普通列表。要排序你可以做:
sorted_books = sorted(user.books, lambda x: x.date)
您可以在内存中进行排序,而不是通过查询进行排序(虽然我相信您可以通过结构化属性对User
的查询结果进行排序,但它不会对对属性本身的排序,只是返回User
个对象的顺序。
有关如何在Python中对列表进行排序的更多信息,请查看this article。