class User(db.Model):
username = db.StringProperty(required=True)
password = db.StringProperty(required=True)
email_address = db.StringProperty(required=True)
profile_img = db.BlobProperty()
class Book(db.Model):
user = db.ReferenceProperty(User, collection_name='books')
#first build
Book_1 = db.BooleanProperty(default=False)
Book_2 = db.BooleanProperty(default=False)
Book_3 = db.BooleanProperty(default=False)
Book_4 = db.BooleanProperty(default=False)
您好我想与这两个模型建立一对一的关系。有什么我可以做的,以便它永远不会为每个用户创建多个Book模型吗?
感谢。
答案 0 :(得分:3)
我认为get or insert可能对此有用。也许在您创建用户模型时,您可以使用用户名(可能是唯一的)get_or_insert
书籍模型作为关键,显然是第一次创建它并随后获取它。
Model.get_or_insert (key_name, **kwds)
尝试使用给定的密钥获取模型类型的实体 名称。如果存在,get_or_insert()只返回它。如果没有 存在,一个在kwds中具有给定种类,名称和参数的新实体 创建,存储和返回。
get和后续(可能)put操作包含在a中 事务确保原子性。这意味着get_or_insert()会 永远不会覆盖现有实体,并且会插入新实体 并且只有当没有具有给定种类和名称的实体时才存在。