位置: 编程技术 - 正文

利用信号如何监控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标准模板库)

  • 纳税人办理退税流程
  • 自查补报以前年度收入可以补在当前属期吗
  • 支付货款的会计凭证怎么做
  • 暂缓收缴工会经费的请示
  • 收据四联分别叫什么
  • 餐饮业可以开增值税专用发票吗?
  • 银行汇票可以异地跨行使用吗
  • 个人银行账户怎么填写
  • 投入实收资本需要缴纳什么税
  • 跟个人租车可以到税务局开发票吗
  • 当月开票当月收款
  • 同一控制下企业合并和非同一控制下企业合并的区别
  • 原始投资额包括资本化利息吗
  • 怎么认证财付通
  • 计件工资的计算
  • 建筑企业差额征收
  • 印花税合同金额和结算金额不一致
  • 免税品销售有增值税吗
  • 投资款需要交印花税嘛
  • 营改增实施过程中的难点
  • 物管费开票可以开公司名称吗
  • 特定业务预缴所得税不能填写
  • 国际货运代理免税怎么做账
  • 捐赠货品怎么做会计分录
  • 营业收入销售收入计算公式
  • 新入职员工如何加入企业微信
  • 个体户没有进项票怎么开销项发票
  • won11更新
  • 电脑连上WiFi上不了网怎么办?
  • win11开机后无法操作
  • 其他应收款贷方负数说明什么
  • 事业单位会计专业知识考什么
  • php dicom
  • 城镇土地使用税的计算公式
  • 一般纳税人企业所得税税率多少
  • php pop
  • 企业将设备出租应当作为固定资产吗
  • yolov1算法
  • 数据库防止重复数据
  • 语义分割用途
  • jquery获取值的几种方法
  • mysql php
  • 不开票销售收入怎么做账务处理
  • 永久性差异会计不确认收入
  • 现销和赊销对利润质量的影响
  • 固定资产清理年末余额怎么处理
  • php安装步骤
  • mongodb4.0安装教程
  • 六税一费和六税两费的区别
  • 一般纳税人会计做账的基本流程
  • 一般纳税人税率2023
  • MySQL的Query Cache原理分析
  • 研发人员工资是实发还是应发
  • 预提费用在汇算清缴时调整
  • 固定资产清理主动
  • 预收款开票的会计分录
  • 合并报表非同控为什么调公允
  • 收到预收款并已付款
  • 成品油发票如何下载库存
  • 销售费用主要包括
  • 汇算清缴退费怎么入账
  • 租赁写字楼的需求有哪些
  • 日常费用报销流程是什么样的?
  • WIN7系统屏幕亮度哪里设置
  • 怎么进入bios设置界面win10
  • os x 10.10.5
  • linux字符串命令
  • linux crontab用法
  • 在bootstrap中,有哪几种导航
  • cocos2dx官方教程
  • 只用html和css
  • python回归结果输出
  • python开发bi
  • unity获取手机型号
  • js window.screen
  • 需要缴税多少钱一个月
  • 增值税发票税控开票软件卸载不了
  • 税务局党支部党员大会会议记录
  • 三代手续费退还银行网点变更怎么办
  • 舆论与舆情之间的关系是怎样的?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设