0

クラスを作成するときにコンストラクターを使用して一括割り当てできることはわかっています。

attributes = {'name':'John', 'surname':'Smith', ...}
record = Model(**attributes)

しかし、既存のレコードがある場合、どのように属性を割り当てることができますか?

record = ....
record.???(**attributes)

ありがとう!

4

1 に答える 1

2

属性に割り当てるだけです...

mymodel = MyModel()
mymodel.name = 'John'
mymodel.surname = 'Smith'

イニシャライザが行うことを実際に行いたい場合は、次を使用できますsetattr

attributes = {'name':'John', 'surname':'Smith'}
record = Model()

for k, v in attributes.iteritems():
    setattr(record, k, v)

参照: https://developers.google.com/appengine/docs/python/datastore/modelclass#Model

そしてそこから:

アプリケーションは、Model クラスのサブクラスをインスタンス化することによって、新しいデータ エンティティを作成します。エンティティのプロパティは、インスタンスの属性を使用するか、コンストラクターへのキーワード引数として割り当てることができます。

s = Story()
s.title = "The Three Little Pigs"

s = Story(title="The Three Little Pigs")
于 2012-12-16T16:10:48.937 に答える