質問

ウィジェットと呼ばれる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()
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top