获取或创建匹配的密钥和用户(Python-AppEngine)
在Google App Engine上使用Python中的“get_或_insert”尝试匹配记录和用户 使用下面的模型,我想检查用户是否已经创建了一本书的记录(在BookUser中列出),如果他们在BookUser中确实有记录,则获取该书的详细信息。如果他们不使用XX数据创建它,并将其与书籍和用户关联获取或创建匹配的密钥和用户(Python-AppEngine),python,google-app-engine,Python,Google App Engine,在Google App Engine上使用Python中的“get_或_insert”尝试匹配记录和用户 使用下面的模型,我想检查用户是否已经创建了一本书的记录(在BookUser中列出),如果他们在BookUser中确实有记录,则获取该书的详细信息。如果他们不使用XX数据创建它,并将其与书籍和用户关联 class User(db.Model): id = db.StringProperty() name = db.StringProperty() image = db.Blo
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)
我仍然沉浸在应用程序引擎、按键等方面。
任何帮助都会很好,谢谢
d您可以将BookUser实体的键设置为用户和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()
您可以将BookUser实体的键设置为用户和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()
谢谢Rob,唯一的问题是我发现关键点上的曲线非常远。“book_key.id_或_name()”来自哪里。当我插入一本书时,我正在设置一个键名,例如:“book-23moby-dick”。如何从book表的初始查找中获取“book_key.id_或_name()”@Dexter Holiday,当您放置实体时,您将获得密钥。或者,如果您获取实体,您可以使用entity.key()()获取其密钥。谢谢Rob,唯一的问题是,我发现关键点上的曲线非常遥远。“book_key.id_或_name()”来自哪里。当我插入一本书时,我正在设置一个键名,例如:“book-23moby-dick”。如何从book表的初始查找中获取“book_key.id_或_name()”@Dexter Holiday,当您放置实体时,您将获得密钥。或者,如果获取实体,可以使用entity.key()()获取其密钥。