populate
上没有StructuredProperty
方法(就像ndb.Model
上的方法一样),那么如何从字典中填充这些字段?
答案 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
可以正常工作。