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 回答