gpt4 book ai didi

python - 我怎么知道 ndb.Model.get_or_insert 是创建了一个新实体还是获得了一个现有实体?

转载 作者:太空狗 更新时间:2023-10-29 18:15:00 25 4
gpt4 key购买 nike

对于以下(损坏的)函数,如果实体已创建或更新,我想返回 True,否则返回 False。问题是我不知道 get_or_insert() 是否得到了一个现有的实体,或者插入了一个实体。有没有一种简单的方法可以确定这一点?

class MyModel(ndb.Model):
def create_or_update(key, data):
"""Returns True if entity was created or updated, False otherwise."""

current = MyModel.get_or_insert(key, data=data)

if(current.data != data)
current.data = data
return True

return False

最佳答案

get_or_insert() 是一个微不足道的函数(虽然它的实现看起来很复杂,因为它试图处理不寻常的属性名称)。您可以轻松地自己编写:

@ndb.transactional
def my_get_or_insert(cls, id, **kwds):
key = ndb.Key(cls, id)
ent = key.get()
if ent is not None:
return (ent, False) # False meaning "not created"
ent = cls(**kwds)
ent.key = key
ent.put()
return (ent, True) # True meaning "created"

关于python - 我怎么知道 ndb.Model.get_or_insert 是创建了一个新实体还是获得了一个现有实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14542175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com