2012-04-26 9 views
0

Googleのアプリエンジンで自分のレコードを更新するにはどうすればよいですか?Googleのアプリエンジンでデータを更新する方法 - Python?

私は、次のフィールド

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

何私がしたいことはフィールドのタイトルとレベルを更新することである

と私のモデルを持っていますが、私はプロパティにアクセスしたい/ JavaScriptオブジェクトは、IEのような文字列を経由して属性

私はモデルへの選択をすれば

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

が、それはこのようなプロパティにアクセスして更新することが可能です。

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

私が見たのはこれ(私のために働いていない)です。

myRecord.title = 'New Title' 

NBは:Googleのドキュメントは、あなたのコードサンプルでは、​​このエリアに

+3

setattr(result, 'title', 'New Title')を使用することができます ' myRecord.title = '新しいタイトル'は機能していませんか? (文字列名を与えられたプロパティを扱うには、 'setattr'と' getattr'を見てください。他のコードから文字列として属性名を渡さない限り、これは一般的に醜いものに見えます。 – geoffspear

+0

これはコードの匂いです非常に危険なことをしている可能性があります。ユーザーがどのフィールドを直接読み書きするかを制御できるようにしてください。 –

答えて

7

非常に乏しいですちなみに、myRecordsはクエリです。あなたは、任意の変更前の結果をgetする必要があります。

result = myRecords.get() 

を次に、あなたがまたはresult.titleとタイトルプロパティにアクセスしたくないことができない場合、あなたはどのような方法で、その後result.put()

関連する問題