2012-04-26 49 views
0

如何更新我的記錄在谷歌應用程序引擎?如何更新谷歌應用程序引擎中的數據 - Python?

我有我有以下字段

doc_no = db.IntegerProperty() 
title = db.StringProperty() 
level = db.StringProperty() 

我要的是更新的字段標題和級車型,但我想訪問的屬性通過串/屬性,如JavaScript對象,即

,如果我做一個選擇的模型

myRecord = db.GQLQuery('Select * from MyModelAbove where doc_no = 1') 

是否有可能訪問和更新這樣的性能;

myRecord['title']='New Tile' 
myRecord['level']='Level2' 
myRecord.put() 

我見過的一個是這個(不適合我);

myRecord.title = 'New Title' 

注:順便說一下谷歌文檔在這方面

+3

在是什麼樣的方式' myRecord.title ='新標題'不工作? (爲了處理給定字符串名稱的屬性,請查看'setattr'和'getattr',雖然除非從屬性名稱中傳遞字符串作爲其他代碼,否則通常會看起來很難看。 – geoffspear 2012-04-26 11:40:34

+0

它也是代碼異味你可能會做一些非常危險的事情,比如讓用戶控制直接讀寫字段。 – 2012-04-27 03:52:04

回答

7

在您的代碼示例非常稀少,myRecords是一個查詢。您必須在任何修改之前get結果:然後

result = myRecords.get() 

,如果不能或不想與result.title訪問標題屬性,可以使用setattr(result, 'title', 'New Title')然後result.put()