我遇到了这个功能(?),其中字典被隐式转换为ndb.Model对象
我有以下ndb.Model类
class DateOfBirth(ndb.Model)
day = ndb.IntegerProperty()
month = ndb.IntegerProperty()
year = ndb.IntegerProperty()
class User(ndb.Model):
dob = ndb.StructuredProperty(DateofBirth)
在一个地方,当我不小心通过了一个字典
user.dob = {"day": 12, "month": 10, "year": 1983}
它没有抱怨,看起来有效。
这是预期的,还是我预计会在以后遇到问题(因为这种行为没有记录,预计会随时中断)
答案 0 :(得分:2)
对我来说这是一个惊喜,我已经使用NDB很长一段时间了!但是从代码中可以看出:https://github.com/GoogleCloudPlatform/datastore-ndb-python/blob/caac0c3e7dd4d9b2c6b32dfc5d59386dd02e6b57/ndb/model.py#L2354
虽然代码只是对代码的一个小改动,但不必依赖于行为:
user.dob = DateOfBirth(**{"day": 12, "month": 10, "year": 1983})