Db.run_in_transaction что-нибудь возвращает? - PullRequest
0 голосов
/ 06 января 2011

Я имитирую пример транзакции, который я нашел в 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 вернуть что-нибудь, например, значения из вызываемой функции?

1 Ответ

2 голосов
/ 06 января 2011

run_in_transaction возвращает то, что вернула вызванная функция.Вам нужно включить трассировку стека и оригинальный код, чтобы мы могли вам помочь.

...