ndb to_dict方法不包含对象的键

Ala*_*uth 14 python google-app-engine app-engine-ndb

我正在利用ndb的to_dict方法将对象的属性转换为python dict.从我可以告诉的一切,根据文档,此方法不包括dict中对象的键或父级:

https://developers.google.com/appengine/docs/python/ndb/modelclass#Model_to_dict

但是对于我的情况,我需要关键词在dict中.我的偏好是利用内置方法和子类或类似的东西而不是创建我自己的to_dict方法.

实现这一目标的最佳方法是什么,或者我错过了一些明显的东西?提前致谢.

仅供参考:我不是在为这个项目利用django而是直接将python部署到gae.

Tim*_*man 33

你没有遗漏任何东西;-)

只需在调用to_dict后将密钥添加到字典中,然后覆盖该方法.

如果您有多个模型与自定义的to_dict不共享相同的基类,我会将其实现为mixin.

将to_dict定义为Mixin类的方法.你会

class ModelUtils(object):
    def to_dict(self):
        result = super(ModelUtils,self).to_dict()
        result['key'] = self.key.id() #get the key as a string
        return result
Run Code Online (Sandbox Code Playgroud)

然后使用它.

class MyModel(ModelUtils,ndb.Model):
    # some properties etc...
Run Code Online (Sandbox Code Playgroud)