polymodel.PolyModel put () переопределение - PullRequest
0 голосов
/ 25 марта 2011

Мне нужно переопределить метод put в моей модели, потому что мне нужно сделать некоторые специальные вещи при сохранении сущности.

код выглядит примерно так:

class Asset(polymodel.PolyModel):
....

def put(self, rpc=None):
  # do something special
  return self


class Image(Asset):
...

Теперь моя проблема заключается в том, что если я вызываю Asset.put (), он вызывает пользовательский метод put, а Image.put () использует метод по умолчанию. Если Asset будет db.Model, это будет работать так, как ожидается. Image.put () будет использовать пользовательский метод put ().

как я могу заставить подкласс использовать пользовательскую функцию? ТНХ

1 Ответ

2 голосов
/ 25 марта 2011

Несмотря на то, что можно обезопасить ваши классы, чтобы позволить вам изменить поведение метода put (), вам лучше написать метод - вызвать его save () для аргумента - который оборачиваетput () более явным и очевидным образом освобождает вас от необходимости беспокоиться о том, что патчированное поведение наследуется или не наследуется подклассами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...