(如何)你可以在Google App Engine python的实体集合中添加方法吗?

时间:2010-08-17 18:35:39

标签: python google-app-engine collections model

在GAE-python中,您可以通过为子模型分配引用属性来建模一对多关系。

class Book(db.Model):
   title = db.StringProperty()
class Author(db.Model):
   book = db.ReferenceProperty(Book, collection_name = 'authors')
   is_primary = db.BooleanProperty()
   name = db.StringProperty()

这样,我可以访问book对象实例的authors属性,以获取引用它的所有Author实例的可查询列表。

我想要做的是用方法补充authors属性。基于前一个示例的简单示例将是仅返回按字母顺序排序的主要作者的函数。这样的语法是什么?

1 个答案:

答案 0 :(得分:0)

您正在寻找的是一对多关系。没有db.Reference List属性。我想这会帮助你。

class Book(db.Model):
   title = db.StringProperty()
class Author(db.Model):
   is_primary = db.BooleanProperty()
   name = db.StringProperty()

book = Book(title="what is life")
book.put()

author1 = Author(parent=book,is_primary=true,name='author1')
author1.put()

author2 = Author(parent=book,is_primary=true,name='author2')
author2.put()

# from book to authors
book_authors = Author.all().ancestor(book)