我正在修改app引擎,我编写了一个编辑表单来编辑我的存储对象,假设他们是模型Foo。
我有这个代码全部执行但不产生任何异常,但数据存储中的项目保持不变:
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 :(得分:0)
barid
未定义为属性,而是定义为模型中的方法。为了使上述代码有效,我可以检索Bar.get_by_id(barid)
,然后执行
new_bar = Bar.get_by_id(barid)
foo.bar = new_bar