Вы можете переопределить save()
обычным предупреждением, которое вы должны вызывать методом родительского класса.
Если вы обнаружите, что хотите добавить проверочные хуки ко всем своим моделям, вы можете рассмотреть возможность созданиядочерний класс Document
что-то вроде:
class MyDocument(mongoengine.Document):
def save(self, *args, **kwargs):
for hook in self._pre_save_hooks:
# the callable can raise an exception if
# it determines that it is inappropriate
# to save this instance; or it can modify
# the instance before it is saved
hook(self):
super(MyDocument, self).save(*args, **kwargs)
Затем вы можете определить хуки для данного модельного класса довольно естественным образом:
class SomeModel(MyDocument):
# fields...
_pre_save_hooks = [
some_callable,
another_callable
]