Python 在应用程序引擎中,我可以调用;获取“U”或“U插入”;从交易内部?

Python 在应用程序引擎中,我可以调用;获取“U”或“U插入”;从交易内部?,python,google-app-engine,Python,Google App Engine,在google app engine中,我可以从事务内部调用“get_或_insert”吗 我之所以问这个问题,是因为我不确定在已经运行的事务中运行它自己的事务是否有冲突 谢谢 No.get\u或\u insert是获取或插入记录的事务函数的语法糖。您可以自己简单地实现它,但只有当您正在操作的记录与当前事务中的其余实体在同一实体组中,或者您启用了跨组事务时,这才起作用。实际上,这取决于您使用的是NDB还是旧的db包。Nick的回答仅适用于旧的db包。但是,在NDB中,如果存在当前事务,则get_

在google app engine中,我可以从事务内部调用“get_或_insert”吗

我之所以问这个问题,是因为我不确定在已经运行的事务中运行它自己的事务是否有冲突


谢谢

No.
get\u或\u insert
是获取或插入记录的事务函数的语法糖。您可以自己简单地实现它,但只有当您正在操作的记录与当前事务中的其余实体在同一实体组中,或者您启用了跨组事务时,这才起作用。

实际上,这取决于您使用的是NDB还是旧的db包。Nick的回答仅适用于旧的db包。但是,在NDB中,如果存在当前事务,则get_或_insert()将加入当前事务。如果在事务外部调用,它将创建自己的事务。这与此处记录的propagation=ALLOWED的语义相匹配:

(Nick在加入现有交易时对实体组的限制是正确的。)