我已经看过无数关于如何使用to_dict()和json.dumps()将ndb.Model对象编码为json的示例,但是找不到一个关于如何对其进行编码的实例。相反:将json.loads()的结果解码为ndb.Model对象。
这是我尝试的但是没有效果:
def post(self):
payload = json.loads(self.request.body)
assert isinstance(payload, dict), 'Bad payload'
myCustomClass = CustomClass(**payload)
请注意,尽管CustomClass继承自ndb.Model且具有简单属性(StringProperty,IntegerProperty ...),但它仍继承自其他类并具有重复属性(如果它改变了答案的任何内容......虽然我希望收到一个不依赖于课堂内部的一般答案。
感谢。
答案 0 :(得分:2)
请参阅populate。
不确定继承问题(你可以提供一个更具体的例子),但你会有这样的事情:
def post(self):
payload = json.loads(self.request.body)
assert isinstance(payload, dict), 'Bad payload'
myCustomClass = CustomClass()
myCustomClass.populate(**payload)
myCustomClass.put()
另外,请注意,您应该首先验证用户提交的数据,而不是立即盲目存储所有数据。