我很难改变默认的_get_for_dict()方法。 这就是我的代码目前所看到的:
class ImageProperty(ndb.BlobKeyProperty):
def _get_for_dict(self, entity):
value = super(ImageProperty, self)._get_for_dict(entity)
if value:
return images.get_serving_url(value)
else:
return None
我对覆盖方法的概念没那么多,并且在使用ndb时遇到了麻烦... 基本上我想要做的事情:将我的数据存储区存储为BlobKeyProperty,但在将其作为字典检索时,我想获取图像服务网址。
非常感谢
答案 0 :(得分:1)
我还没试过这个,但我认为这会更好_from_base_type
一个钩子:
class ImageProperty(ndb.BlobKeyProperty):
def _from_base_type(self, value):
return images.get_serving_url(value)
如果我正确理解documentation,则此API"堆栈"所以你不需要在超类(_from_base_type
)上调用BlobKeyProperty
。我想ndb
handles that for you。就个人而言,我认为当super
看起来它可以正常工作时,这对API来说有点奇怪...但是......那就是我的猜测。