0

나는 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_postdb.run_in_transaction을 통해 반환되고, 무언가는 수행 할 수 있습니다. 하지만 점점 오전 :이 함수 run_in_transactionnew_post 변수에 할당지고 있는게 틀림 없어

TypeError: object is not callable 

아닌 실제 new_posttxn에서 돌아왔다.

db.run_in_transaction은 호출 가능 함수의 값과 같은 값을 반환 할 수 있습니까?

+1

run_in_transaction은 트랜잭션 함수가 반환하는 값을 반환합니다. (http://code.google.com/appengine/docs/python/datastore/functions.html#run_in_transaction) 버그를 발견하는 데 도움이되는 코드가 더 필요합니다. –

답변

2

run_in_transaction은 호출 된 함수가 반환 한 값을 반환합니다. 우리는 compelte stacktrace와 원래 코드를 포함시켜야합니다.

+0

고마워, 닉. 이것은 내 실수였다. "요약 된"섹션의 문장 중 하나에는 트랜잭션을 사용하는 타사 라이브러리에 대한 호출이 포함되었습니다. 이를 위해 실수로 txn에 param을 추가하고 잘못 호출했습니다. –

관련 문제