Taggable Mixinにあるトランザクションの例を模倣していますが、同じように動作していません。この例ではdb.run_in_transactionは何かを返しますか?
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()
txn
からnew_post
がdb.run_in_transaction
を通じて返され、その後、何かがそれを行うことができます。しかし、私は取得しています:これは、関数run_in_transaction
がnew_post
変数に割り当てられてきていると信じて私をリード
TypeError: object is not callable
ではなく、実際のnew_post
がtxn
から返されました。
db.run_in_transaction
は、呼び出し可能な関数の値のようなものを返しますか?
run_in_transactionは、トランザクション関数が返す値を返します。 (http://code.google.com/appengine/docs/python/datastore/functions.html#run_in_transaction)バグの発見に役立つコードを追加する必要があります。 –