2011-07-17 5 views
0

저는 앱 엔진을 고치고 있습니다. 저장 한 개체를 편집하기위한 편집 양식을 작성했습니다. 모델이 Foo라고 가정 해 보겠습니다. put()은 내 변경 내용을 "put"하지 않습니다!

나는 모두가 실행되고 데이터 저장소에서 예외 아직 항목을 생성하지 않습니다이 코드는 변경되지 않은 :

class EditFooItemHandler(BaseHandler): 
    page = "edit_fooitem" 
    def post(self, foo_id=None):#POST 
     if not foo_id is None: 
      foo_id = int(foo_id) 
      new_barid = int(self.request.POST['barid']) 
      item = FooItem.get_by_id(int(foo_id)) 
      item.barid = new_barid 
      logging.info('Saving FooItem with id=' + str(foo_id) + 'and barid=' + str(new_barid)) 
      item.put() 

     self.prepare() 
     self.values['item'] = item 
     self.finish() 

    def get(self, foo_id):#GET 
     self.prepare() 
     logging.info('getreq') 
     logging.info(foo_id) 
     item = FooItem.get_by_id(int(foo_id)) 
     self.values['item'] = item 
     self.finish() 

어떤 아이디어 왜 item.put() 내 데이터 저장소를 변경하지 않는 이유는 무엇입니까? 당신의 도움을 주셔서 감사합니다!

+0

을 할 수있는 위의 코드를 작동하게하려면? – systempuntoout

+0

예! ..... –

+0

'barid'가 FooItem 모델 클래스 내부의 프로퍼티로 선언되어 있습니까? – systempuntoout

답변

0
barid 

은 속성으로 정의되지 않고 모델의 메서드로 정의됩니다. 내가 Bar.get_by_id(barid)를 검색 한 다음 ID로`저장 FooItem를 볼 수 있나요 = ...`로그에

new_bar = Bar.get_by_id(barid) 
foo.bar = new_bar 
관련 문제