位置: 编程技术 - 正文

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

  • 企业所得税是什么意思
  • 缴纳的工会经费收据怎么取得
  • 抵扣的发票可以部分红冲吗
  • 水利建设基金计算
  • 研发费用 会计核算
  • 什么费用可以报销工会经费
  • 增值税即征即退收入要交企业所得税吗
  • 物业前期开办物资
  • 共同控制合营企业
  • 缓缴税款到期缴纳填主表第几行
  • 不达起征点收到销售额如何作分录?
  • 财务人员最重要的三点
  • 房地产不可销售的物业有哪些
  • 物流公司零税率发票是怎么回事?
  • 预缴税款的会计分录贷其他应付款
  • 请问高人们旧房子要装修应怎样装
  • 旅游业要怎么进行差额征税处理
  • 坏账收回的账务处理方法
  • 购进一批材料,材料已经入库
  • 生产成本中材料款年末要全部结转吗
  • 公司车贷款还款怎么操作
  • 员工离职再入职要重新签订合同吗
  • 个人独资企业查账征收个人所得税汇算清缴
  • 全年累计申报个税怎么计算
  • 善意取得虚开增值税专用发票追征期
  • 库管和车间工人哪个好
  • 怎么做增值税
  • win7系统中如何关闭触摸屏声音
  • win11如何降到win10
  • php如何导入数据库
  • php面向对象面试题
  • 公司股东变更要交税吗可以将股东变更吗
  • 30个极致实用的东西
  • 搬迁收入增值税
  • 税金及附加的含义
  • php中数组的常用函数及用法
  • fall 瀑布
  • 新企业所得税税前扣除政策
  • vue组件封装步骤
  • transformer add norm
  • gpt指标
  • 分割sw
  • btrfs 读取
  • php如何上传1个g以上的文件
  • 帝国最新版本
  • 增值税专票和普票的区别图片
  • 应收账款占比高
  • 个人对公付款
  • mongodb的常用命令
  • 合作社分红计入什么科目
  • 冲抵货款是什么意思
  • 合同履约成本与一份当前或预期取得的区别
  • 两个独立核算单位可以共用一个账户吗
  • 融资租赁的会计处理方法举例子
  • 对公账户可以报税吗
  • 过路费纸质发票可以抵扣增值税吗
  • 食品生产企业成本怎么核算
  • mysql 查询范围
  • bios如何关闭网卡
  • win7登录不了系统界面
  • linux讲解
  • Win10预览版更新弹窗如何关闭
  • 电脑导航阻止怎么办
  • opengl入门教程(精)
  • JavaScript中的数据类型分哪为两大类?
  • nginx与php
  • js显示word
  • 如何防止蟑螂爬到床上
  • javascript面向对象编程指南 pdf
  • javascript如何禁用
  • ADB not responding. You can wait more,or kill"abd.exe" process manually and click 'Restar
  • 粮食购销企业税收服务
  • 河南省国家税务总局网站
  • 江苏省国家税务局电子税务局官网
  • 石家庄水费阶梯价格表 2020
  • 成都交房需要交什么费用
  • 全国增值税发票查验平台官网手机
  • 国税能级管理(国税局等级制度)
  • 个体税务登记资料不齐怎么办
  • 收缴和缴纳的区别
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设