python - flask sqlalchemy signals 无法触发
问题描述
在我得蓝图当中我定义了 一个接受者
# -*- coding: utf-8 -*-from flask_sqlalchemy import models_committed# flag = True# if flag:def on_models_committed(sender, changes): print u’我是订阅者,我要触发任务’ for obj, change in changes:if change == ’insert’ and hasattr(obj, ’__commit_insert__’): obj.__commit_insert__()elif change == ’update’ and hasattr(obj, ’__commit_update__’): obj.__commit_update__()elif change == ’delete’ and hasattr(obj, ’__commit_delete__’): obj.__commit_delete__()models_committed.connect(on_models_committed)
然后哦在create_app 当中的__init__.py 导入了我蓝图中的这个方法
在models.py 中定义了__commit_update__()方法来执行处理逻辑
但是现在信号无法触发,求问哪里出错了?
问题解答
回答1:问题解决方式db.session.query(ClassModel).filter( ClassModel.id == ids).delete()修改成db.session.query(ClassModel).filter( ClassModel.id == ids).first().delete()classModel(db.Model): .....def delete(self):db.session.delete(self)db.session.commit()
加上以上修改能够正确的捕捉到信号的触发了, 但是不知道原理是啥? query对象的删除,和model对象的删除的级别问题么, 内置信号是基于db 这一层级别的吗?
相关文章:
1. android-webview - Android 7.0 webview不自动刷新2. javascript - 关于jsp中嵌入js代码的问题3. angular.js - angurlarJS的安卓的微信端中用加载ngCookies会出错的问题4. javascript - [MUI 子webview定位]5. javascript - 有一个异步获取数据的函数A,其他依赖这个A得到的数据的函数是否都必须是异步的?6. javascript - 对不同类别的id的物品中的某个字段做权重覆盖,除了直接使用if else语句还能有更优雅便于维护的方式吗?7. javascript - mui.back() 怎么重写,返回到指定的ID页面?8. javascript - 判断用户网络环境9. javascript - js 二维数组比较大小问题。10. javascript - 为什么var obj = {}创建对象的方法里面不能用this.xxx来声明属性 ?

网公网安备