python - flask sqlalchemy signals 無(wú)法觸發(fā)
問(wèn)題描述
在我得藍(lán)圖當(dāng)中我定義了 一個(gè)接受者
# -*- coding: utf-8 -*-from flask_sqlalchemy import models_committed# flag = True# if flag:def on_models_committed(sender, changes): print u’我是訂閱者,我要觸發(fā)任務(wù)’ 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 當(dāng)中的__init__.py 導(dǎo)入了我藍(lán)圖中的這個(gè)方法
在models.py 中定義了__commit_update__()方法來(lái)執(zhí)行處理邏輯
但是現(xiàn)在信號(hào)無(wú)法觸發(fā),求問(wèn)哪里出錯(cuò)了?
問(wèn)題解答
回答1:問(wèn)題解決方式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()
加上以上修改能夠正確的捕捉到信號(hào)的觸發(fā)了, 但是不知道原理是啥? query對(duì)象的刪除,和model對(duì)象的刪除的級(jí)別問(wèn)題么, 內(nèi)置信號(hào)是基于db 這一層級(jí)別的嗎?
相關(guān)文章:
1. mysql建表報(bào)錯(cuò),查手冊(cè)看不懂,求解?2. 求大神支招,php怎么操作在一個(gè)html文件的<head>標(biāo)記內(nèi)添加內(nèi)容?3. 致命錯(cuò)誤: Class ’appfacadeTest’ not found4. PHP類屬性聲明?5. php點(diǎn)贊一天一次怎么實(shí)現(xiàn)6. 怎么php怎么通過(guò)數(shù)組顯示sql查詢結(jié)果呢,查詢結(jié)果有多條,如圖。7. 在應(yīng)用配置文件 app.php 中找不到’route_check_cache’配置項(xiàng)8. 老師們php,插入數(shù)據(jù)庫(kù)mysql,都是空的,要怎么解決9. sql語(yǔ)句 - 如何在mysql中批量添加用戶?10. phpstady在win10上運(yùn)行
