gpt4 book ai didi

google-app-engine - get_or_insert,如何知道它被创建或检索?

转载 作者:行者123 更新时间:2023-12-01 08:36:53 26 4
gpt4 key购买 nike

我想使用 get_or_insert , 但是我怎么知道它是刚刚创建的还是从现有条目中获取的。

最佳答案

简而言之,你不能。不过,get_or_insert 只是一个方便的函数,您可以很容易地自己编写和改进它。这是一个返回元组的简单替换,指示它是否已创建:

@classmethod
def my_get_or_insert(cls, key_name, parent=None, **kwargs):
def _tx():
entity = cls.get_by_key_name(key_name, parent=parent)
if entity:
return entity, False
entity = cls(key_name=key_name, parent=parent, **kwargs)
entity.put()
return entity, True
return db.run_in_transaction(_tx)

下面是您将如何使用它:

entity, created = MyKind.my_get_or_insert('foo', bar=123)
if created:
# Do whatever you do with a new entity here.

请记住,如果您将它与上面的方法一起使用,那么您根据实体是否是新实体所做的任何事情都不是事务性的——您的代码可能会在创建实体之后但在创建实体之前失败。如果你想做的事情有副作用,你应该在交易中做。

关于google-app-engine - get_or_insert,如何知道它被创建或检索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8721997/

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