Предотвращение удаления экземпляра модели в SQLAlchemy

#python #sqlalchemy

#python #sqlalchemy

Вопрос:

Я использую SQLAlchemy и хотел бы предотвратить удаление конкретного экземпляра модели — у этого экземпляра есть определенный «ключ», который я с удовольствием жестко запрограммирую.

Класс модели

 class MyModel(db.Model):
    id = db.Column('id', db.Integer, primary_key=True)
    key = db.Column(db.String, unique=True)
  

В Django я бы сделал что-то вроде

 class MyModel(models.Model):
    key = models.CharField()

    def delete(self, **kwargs):
        if self.key == 'my-undeletable-key':
            raise MyCustomException()
        super(MyModel, self).delete(**kwargs)
  

Существует ли эквивалент SQLAlchemy?

Комментарии:

1. да, это то же самое! вы можете определить метод для класса модели в sqlalchemy

2. Также хорошей отказоустойчивой мерой является установка пользовательских разрешений таким образом, чтобы пользователи не могли удалять из определенных таблиц.