odoo12 字段追踪、消息通知机制

本文介绍Odoo12中实现字段修改追踪及消息通知的方法,通过集成mail.thread和mail.activity.mixin,增强模型的安全审计功能,适用于防止恶意修改关键字段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

odoo12 字段追踪、消息通知机制

使用场景:odoo有着强大的消息记录、通知机制;实际开发中,常常会有客户的需求,页面上form视图中的某些字段不允许反复修改,假如有的用户修改了,恶意搞坏,往往容易给公司利益造成损失,或破坏,那么如何有效的记录相关用户的操作,提供一定的安全审计功能,下面我们就来介绍下使用方法。

  1. 首先,先保证整体基本的消息记录功能,两个地方需要修改,模型和form视图,在你需要消息记录的模型申明中,添加如下红色部分代码:
class TestModle(models.Model):
    """ 模型名称 """
    _name = 'test.test_model'    # 定义 模型名(类名)   必写
    _rec_name = 'name'           # 定义 模型引用时 显示的默认字段  非必写
    _description = 'test model'  # 定义数据库中的表名  非必写
    _inherit = ['mail.thread', 'mail.activity.mixin']  # 集成消息模型 增加消息记录通知功能
  1. 在相应的form视图内部下方,增加如下红色代码:
<form>
   ....
   省略一串代码
   ....
    <div class="oe_chatter">
        <field name="message_follower_ids" widget="mail_followers"/>
        <field name="activity_ids" widget="mail_activity"/>
        <field name="message_ids" widget="mail_thread"/>
    </div>
</form>
  1. 在想要追踪的字段的模型定义中增加如下属性:
class TestModle(models.Model):
    """ 模型名称 """
    _name = 'test.test_model'    # 定义 模型名(类名)   必写
    _rec_name = 'name'           # 定义 模型引用时 显示的默认字段  非必写
    _description = 'test model'  # 定义数据库中的表名  非必写
    _inherit = ['mail.thread', 'ir.needaction_mixin']  # 集成消息模型 增加消息记录通知功能  

    name = fields.Char(string="Name")
    inout = fields.Selection(string="InOut", selection=[('Import', '进口'), ('Export', '出口'), ], track_visibility='always',)
    contract_num = fields.Char(string="Contract Num", track_visibility='onchange')
  1. mail模型有一个强大的字段跟踪系统,可将对应值的变化记录到讨论系统中。
  2. 为了对字段进行监听,只需要将track_visibility 属性设置为onchange(当字段值改变时展示在通知中)
  3. always(该值总是会被显示在通知中,一般用于让通知内容更好理解)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值