1

私はこのようなものを持っています:

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

しかし、たとえば、そのユーザーの日付順に並べられた本のリストを取得するにはどうすればよいでしょうか? または、一般的に、構造化されたプロパティのクエリですが、私がすでに持っているユーザーに関連しています。

4

1 に答える 1

4

ユーザー オブジェクトを取得したら、booksプロパティを通常のリストとして扱うことができます。並べ替えるには、次のことができます。

sorted_books = sorted(user.books, lambda x: x.date)

クエリを介してではなく、メモリ内で並べ替えを行います(構造化されたプロパティでクエリの結果を並べ替えることができると思いますがUser、プロパティ自体の順序には影響しません。Userオブジェクトが返されます)。

Python でリストを並べ替える方法の詳細については、この記事を参照してください

于 2013-03-27T12:22:37.120 に答える