2

我很难改变默认的_get_for_dict()方法。 这是我的代码看起来的时刻:覆盖默认_get_for_dict()为ndb属性

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麻烦iself ...概念 基本上我想做的事:我的存储数据存储密钥作为BlobKeyProperty,但是当它作为字典检索时,我想获取图像服务URL。

非常感谢

回答

1

我没有试过,但我认为,这将是一个_from_base_type钩更好:

class ImageProperty(ndb.BlobKeyProperty): 
    def _from_base_type(self, value): 
     return images.get_serving_url(value) 

如果我理解正确的documentation,这个API“堆栈“,所以你不需要在超类上调用_from_base_typeBlobKeyProperty)。我猜ndbhandles that for you。就个人而言,我认为这对于API来说有点奇怪,因为super看起来好像工作得很好......但是......这就是我所想的。

+0

非常感谢,似乎工作 – lkshrk