位置: 编程技术 - 正文

利用信号如何监控Django模型对象字段值的变化详解(信号监控设备是什么)

编辑:rootadmin

推荐整理分享利用信号如何监控Django模型对象字段值的变化详解(信号监控设备是什么),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:通过信号,利用信号如何监控手机,信号监听,信号监视器,利用信号如何监控手机,利用信号如何监控手机,利用信号如何监测电压,利用信号如何监测电压,内容如对您有帮助,希望把文章链接给更多的朋友!

django信号系统

django自带一套信号发射系统来帮助我们在框架的不同位置传递信息.也就是说,当某一事件发生时,信号系统可以允许一个或多个发送者(senders)将通知或信号(signals)推送给一组接受者(receivers).信号系统在我们多处代码与同一个事件相关是特别有用.

既然是信号系统,那么必须包含以下要素:

 1. 发送者-谁发送了信号

 2. 信号-发送的信号本身

 3. 接收者-信号是发给谁的

Django 信号 (Signals) 的功能类似于 WordPress 的动作 (action),用于为项目全局增加事件的广播 (dispatch) 与接收 (receive) 机制。其中,灵活使用其内置的模型信号 (Model Signals) 的接收功能就可以监控大部分模型对象 (Model instances) 的变化。因为不需要修改模型本身的代码,在进行跨应用 (App) 监控时有低耦合的优势。

基本用法

利用信号如何监控Django模型对象字段值的变化详解(信号监控设备是什么)

信号的基本用法官方文档上的 主题 与 参考 上已经有详细描述。本文只提几个要点(本文环境:Django 1.8 & Python 3.4):

代码组织

官方推荐在应用目录下新增一个 signals.py 文件,同时参考官方文档的 应用配置 节中自定义应用配置 (AppConfig) ,重载应用配置类的 run 方法,在该方法内调用 from . import signals

接收信号

推荐使用 django.dispatch.receiver 这个装饰器进行信号的接收:

从代码可读性的角度来讲,建议一个接收函数只做一件事。

监控特定字段 (field) 值的变化

从上一段代码可以知道,通过接收模型 post_save 信号,可以得知发生了保存模型对象的操作,并且还可以区分出是创建了模型对象还是更新了模型对象。然而,模型信号并没有提供针对特定字段值变化的广播功能,虽然该信号提供了 update_fields 参数,但是并不能证明在该参数中的字段名的字段值一定发生了变化,所以我们要采用一个结合 post_init 信号的变通方法。

举一个例子:当学生名字发生改变之后发布一条公告。

简单的说就是在该模型广播 post_init 信号的时候,在模型对象中缓存当前的字段值;在模型广播 post_save (或 pre_save )的时候,比较该模型对象的当前的字段值与缓存的字段值,如果不相同则认为该字段值发生了变化。

总结

标签: 信号监控设备是什么

本文链接地址:https://www.jiuchutong.com/biancheng/375450.html 转载请保留说明!

上一篇:深入理解Python中range和xrange的区别(浅谈python)

下一篇:Python标准模块--ContextManager上下文管理器的具体用法(python标准模板库)

  • 购入原材料计划成本
  • 小规模纳税人怎么变成一般纳税人
  • 一般纳税人符合条件
  • 垫付生育津贴的钱怎么算
  • 利润和营收哪个更重要
  • 冲减以前年度多计的管理费用分录
  • 一般纳税人购买并销售免税货物所发生的运输费用
  • 异地开发房地产会一直待在那个城市吗
  • 企业交税前可以扣除的费用
  • 应交税费应交增值税的三级科目有哪些
  • 确认收入时需要结转成本吗
  • 可变股权转让对价会计处理怎么做?
  • 公司增资认缴需要什么流程呢怎么办理
  • 发票联给错怎么办?
  • 上级工会返还的会计分录
  • 会计中包装物计入
  • 赠送的商品怎么入账
  • 担保扶持基金可以冲代偿吗
  • 增值税当月计提当月交可以吗
  • 不动产租金收入缴纳增值税
  • windows10桌面右键没反应
  • 补交地税多少钱
  • winds10企业版
  • windows10我得电脑
  • 新公司成立股份比例
  • 外贸出口退税企业差旅费可以抵扣吗
  • 利息费用可扣除什么
  • 悉尼奥林匹克公园
  • 以前年度应扣未扣支出专项申报表
  • 老生常谈含义
  • 存放同业属于什么会计制度
  • 2023年生活性服务业加计扣除
  • 一般纳税人购买原材料会计分录
  • cityscape dataset
  • 腾讯产品面经
  • 结转出口退税分录
  • linux扫描命令
  • 交易性金融资产的入账价值
  • php数据库网址
  • 支付厂房租赁费怎么入账
  • 发票没有填写开户行,可以报销吗
  • 帝国cms使用手册
  • 劳务派遣业务如何开展
  • 企业附加税的税率
  • 公司基本账户提额怎么算
  • 残疾人就业保障金怎么计算
  • 员工预支钱要写什么单据
  • 母子公司之间的借款
  • 记账凭证的编制依据是审核无误的原始凭证
  • 储备基金是什么
  • 上月计提少了怎么办
  • 应收股利在资产负债表中怎么填
  • 未分配利润的
  • 其他业务收入如何开票
  • 房租增值税专用发票几个点
  • 应收帐款 发票
  • mysql序列函数
  • sql server触发器的编写与使用
  • win7链接联机id
  • ubuntu kylin 14.04下载 ubuntu优麒麟14.04 lts下载地址
  • 开启win10
  • win7桌面怎么设置到d盘
  • 保证windows 7安装后正常使用的安装方法
  • nodejs可以直接操作数据库
  • sqlite数据库修改及升级
  • w10cmd命令高级命令
  • iframe的使用和例子
  • jquery序列化json
  • android设计模式总结
  • android中启动service的方法有
  • unity怎么做触屏按键
  • python 批量操作
  • 手把手教你自己做菜
  • 物流企业需要缴税吗
  • 个体户税务注销
  • 缴纳个人所得税怎么计算
  • 交通运输业的税率9%和13%
  • 核定征收,新企业怎么填
  • 销货清单表格的制作方法
  • 国网成都市局和绵阳市局的区别?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设