Я имитирую пример транзакции, который я нашел в Taggable Mixin , но он ведет себя не так.
def txn():
// statements omitted for brevity
blog_index.put()
new_post = Post(key_name=new_post_key_name, parent=blog_index,
index = new_index, title = new_title,
body = new_body)
new_post.put()
return new_post
def new_post(cls, new_title=None, new_body=None, new_tags=[]):
new_post = db.run_in_transaction(txn)
new_post.tags = new_tags
new_post.put()
В этом примере new_post
из txn
возвращается через db.run_in_transaction
, тогда с этим можно что-то сделать. Но я получаю:
TypeError: object is not callable
Это наводит меня на мысль, что функция run_in_transaction
получает присвоение переменной new_post
, а не фактическому new_post
, возвращаемому из txn
.
Может ли db.run_in_transaction
вернуть что-нибудь, например, значения из вызываемой функции?