使用钩子批量删除后从选择中获取项目

时间:2019-02-22 15:07:44

标签: flask flask-sqlalchemy

目标:

DELETE请求模型后,我需要知道已删除的项目和未删除的项目。可以从查询的SELECT部分推论得出,这应该在删除发生之前进行。我目前正在手动执行此操作,这意味着在执行批量删除操作之前,我先执行了明确的SELECT。但是,由于返回失败的已删除项目的数量及其对应的ID是约定的一部分,因此,每次从表'A'中删除某些内容时,都需要执行此操作。我想知道是否有一种方法可以像delete()属性那样将信息添加到rowcount的返回中。

研究此post可以做到以下几点:

from sqlalchemy import Table, Column, ForeignKey, ...
from sqlalchemy.dialects.mysql import INTEGER

a = Table('A',...
           mysql_engine='InnoDB',
           mysql_charset='utf8'
    )

def before_bulk_delete(mapper, connection, target):
     print("BANANAS ******* SOMETHING HAS BEEN DELETED")
     print(target)
     # It's here where I should be able to execute the select part of the statement

event.listen(a, 'before_bulk_delete', before_bulk_delete)

但是它根本不会被调用。

0 个答案:

没有答案