クラスを作成するときにコンストラクターを使用して一括割り当てできることはわかっています。
attributes = {'name':'John', 'surname':'Smith', ...}
record = Model(**attributes)
しかし、既存のレコードがある場合、どのように属性を割り当てることができますか?
record = ....
record.???(**attributes)
ありがとう!
クラスを作成するときにコンストラクターを使用して一括割り当てできることはわかっています。
attributes = {'name':'John', 'surname':'Smith', ...}
record = Model(**attributes)
しかし、既存のレコードがある場合、どのように属性を割り当てることができますか?
record = ....
record.???(**attributes)
ありがとう!
属性に割り当てるだけです...
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")