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 

Я не так много в концепцию для переопределения методов, и возникают проблемы с ОПРСОМ iself ... В основном то, что я хочу сделать: Хранить мой Datastore Key как BlobKeyProperty, но при получении его в качестве dict я хочу получить 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_type супер класс (BlobKeyProperty). Я думаю, ndbhandles that for you. Лично я думаю, что это немного странно для API, когда super кажется, что это будет работать нормально ... Но ... вот как я думаю.

+0

Большое спасибо, кажется, работает – lkshrk

Смежные вопросы