#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. Также хорошей отказоустойчивой мерой является установка пользовательских разрешений таким образом, чтобы пользователи не могли удалять из определенных таблиц.