任何人都可以指出交易功能中不允许这部分内容吗?
@ndb.transactional(propagation=ndb.TransactionOptions.INDEPENDENT)
def set_visibility(action, key):
item = key.get()
key = key.urlsafe()
if item:
key_name = action + '_' + key
cols = memcache.get(key_name)
if cols:
cols = cols.split(',')
for col in cols:
logging.info(key + '>>>>>>>' + col)
if action == 'unhide':
try:
item.uncollege.remove(col)
pass
except:
logging.error(col + ' already found in datastore blacklist of ' + item.banner_id)
else:
if col not in item.uncollege:
item.uncollege.append(col)
pass
else:
logging.error(col + ' already found in datastore blacklist of ' + item.banner_id)
item.put()
else:
logging.error('cant find memcache ' + key_name)
cols = memcache.set(key_name, '')
else:
logging.error('cant find entity ' + key)
答案 0 :(得分:1)
我弄清楚我的代码有什么问题所以我没有费心去提供其他细节。
问题是,item有_pre_put_hook()
查询另一个模型,因此事务失败。
检查您的挂钩是否碰巧遇到此错误。