如何从dict填充StructuredProperty?

时间:2015-02-28 22:57:19

标签: python google-cloud-datastore app-engine-ndb

populate上没有StructuredProperty方法(就像ndb.Model上的方法一样),那么如何从字典中填充这些字段?

1 个答案:

答案 0 :(得分:1)

您仍然可以populate StructuredProperty

如果您有这样的模型:

class A(ndb.Model):
  value = ndb.IntegerProperty()

class B(ndb.Model):
  name = ndb.StringProperty()
  a = ndb.StructuredProperty(A)

以下内容将填充两者的属性:

my_dict = {"name":"my name", "a":{"value":1}}
b = B()
b.populate(**my_dict)

您也可以在酒店致电populate

my_dict = {"value":1}
b = B()
b.a = A()
b.a.populate(**my_dict)

请注意,getter返回的内容不是StructuredProperty实例。它是A的一个实例。所以调用populate可以正常工作。