Link使用Python绑定Google App Engine

时间:2014-05-16 18:25:28

标签: class google-app-engine python-2.7

我是应用程序引擎的新手,我正试图将两种类型联系在一起,即使在阅读文档之后,我仍然从我认为的关系数据库模型中接近它。

如果我有UserInformation类

class UserInformation(ndb.Model):
    username = ndb.UserProperty()
    firstname = ndb.StringProperty(required=True)
    lastname = ndb.StringProperty(required=True)
    telephone = ndb.IntegerProperty()
    email = ndb.StringProperty()

然后我想要一本书类,以便用户可以拥有多本书

class Book(ndb.Model):
    author = ndb.StringProperty(required=True)
    booktitle = ndb.StringProperty(required=True)

如何将两个类与父/子关系链接在一起?是否像

b = Book(parent=UserInformation, key=’some key’, author=’some author’, booktitle=’a great book’)

如果是,我该如何提取密钥?我可以通过

获取ID
Users = UserInformation(UserInformation.username==’some user’).get()
User_key = Users.key.id()

但我似乎无法获得钥匙?

感激不尽的任何帮助

1 个答案:

答案 0 :(得分:0)

如果它是一个拥有的关系,那么你的策略是好的。至于访问密钥,您已经在代码中使用了它。

您使用

User_key = Users.key.id()

关键是Users.key

然而,想想你如何使用书籍。如果多人拥有相同的图书,您可能需要考虑为每本图书创建一个规范的图书实体。

然后在用户中你可以

  • 有一个重复的KeyProperty,它是一个人拥有的书籍的所有键的列表。或

  • 如果他们可以拥有000册书籍,那么你会回到一个拥有的实体(让用户作为父母)。这个实体有一个KeyProperty指向规范的Book实体,可能还有一个标题的副本,因此您不必为摘要列表提取该书。