2011-07-17 6 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 
関連する問題