获取或创建匹配的密钥和用户(Python - App Engine)

时间:2011-01-27 04:43:25

标签: python google-app-engine

尝试在Google App Engine上使用Python中的“get_or_insert”匹配记录和用户。

使用下面的模型,我想检查一个用户是否有已创建的图书的记录(在BookUser中列出),如果他们在BookUser中有记录,则获取它的详细信息。如果他们不使用XX数据创建它并将其与书籍和用户相关联。

class User(db.Model):
   id = db.StringProperty()
   name = db.StringProperty()
   image = db.BlobProperty(default=None)

class Book(db.Model):
   image = db.BlobProperty()
   date_added = db.DateTimeProperty(auto_now_add=True)
   is_active = db.BooleanProperty(default=True)

class BookUser(db.Model):
   book = db.ReferenceProperty(Book)
   user = db.ReferenceProperty(User)
   is_active = db.BooleanProperty(default=True)

我仍然围绕着App Engine,钥匙等等。 任何帮助都会很棒,欣赏它。

d

1 个答案:

答案 0 :(得分:1)

您可以将BookUser实体的键设置为User和Book键的组合,这将为您提供一种使关系独特的非常简单的方法。

bookuser_key_name = "%s:%s" % (str(book_key.id_or_name()), str(user_key.id_or_name()))
bookuser = BookUser.get_or_insert(bookuser_key_name)
# set your values...
bookuser.put()