Python 如何覆盖Flask Admin上的删除逻辑?
我一直在谷歌和StackOverflow上搜索。基本上,我想尝试覆盖Flask Admin上的delete函数,以不实际删除记录,而是更新名为“deleted_by”和“deleted_on”的对象行 我发现了一些关于StackOverflow的问题,这些问题解释了如何使用on_model_change来更改save按钮上的逻辑,但是没有人具体说明delete model逻辑。我也没有在文档中找到任何与此相关的信息。有人能告诉我该如何处理这个问题吗 提前谢谢 覆盖视图中的方法。如果您使用的是Sqlalchemy视图,请注意在Python 如何覆盖Flask Admin上的删除逻辑?,python,flask-admin,Python,Flask Admin,我一直在谷歌和StackOverflow上搜索。基本上,我想尝试覆盖Flask Admin上的delete函数,以不实际删除记录,而是更新名为“deleted_by”和“deleted_on”的对象行 我发现了一些关于StackOverflow的问题,这些问题解释了如何使用on_model_change来更改save按钮上的逻辑,但是没有人具体说明delete model逻辑。我也没有在文档中找到任何与此相关的信息。有人能告诉我该如何处理这个问题吗 提前谢谢 覆盖视图中的方法。如果您使用的是Sq
try中调用self.session.delete(model)
。。。除了
块
def delete_model(self, model):
"""
Delete model.
:param model:
Model to delete
"""
try:
self.on_model_delete(model)
self.session.flush()
self.session.delete(model)
self.session.commit()
except Exception as ex:
if not self.handle_view_exception(ex):
flash(gettext('Failed to delete record. %(error)s', error=str(ex)), 'error')
log.exception('Failed to delete record.')
self.session.rollback()
return False
else:
self.after_model_delete(model)
return True
在您的视图中,您需要以下内容:
class MyModelView(ModelView):
def delete_model(self, model):
"""
Delete model.
:param model:
Model to delete
"""
try:
self.on_model_delete(model)
# Add your custom logic here and don't forget to commit any changes e.g.
# self.session.commit()
except Exception as ex:
if not self.handle_view_exception(ex):
flash(gettext('Failed to delete record. %(error)s', error=str(ex)), 'error')
log.exception('Failed to delete record.')
self.session.rollback()
return False
else:
self.after_model_delete(model)
return True
另外,您可能不想麻烦处理self.on\u model\u delete(model)
和self.after\u model\u delete(model)
调用,因为默认情况下它们什么都不做