Google App Engine Expandoクラスで動的フィールドを作成する方法は?
-
08-10-2019 - |
質問
ウィジェットと呼ばれるDB Expandoクラスがあります。
私はJSON文字列を渡して、それをDictに変換し、それをデータストアに追加します。
私の質問は、Dictを介して動的フィールドを作成するにはどうすればよいですか。
widget = Widget.get_by_key_name(key_name)
widget.name = self.request.get('wname')
fields = simplejson.loads(self.request.get('wcontents'))
for k,v in fields.iteritems():
widget.k = v
これにより、「k」は、dictのk値に反対する私のフィールド名としてレンダリングされます。
解決
構文 widget.k
属性を参照してください k
オブジェクト上 widget
. 。に 動的に 設定した属性を選択し、内蔵を使用します setattr
方法:
setattr(widget, k, v)
このような属性を動的に設定すると、その特定のエンティティにフィールドが作成されます。
他のヒント
試す:
for k, v in fields.items()
所属していません StackOverflow