odoo 二次开发小记不定时更新

一、odoo中 页面上字段变化引起其他字段范围变化-onchange

@api.onchange('company_id')
def onchange_parent_id(self):
    return {
        'domain': {'parent_id': [('company_id', '=', self.company_id.id)]},
    }

二、odoo中 mail.message 的使用

使用mail.message,分三步走:

 #在表的下面 继承这段话
_inherit = ['mail.thread']  

# 在字段里面 加上 track_visibility='onchange'   
department_id = fields.Many2one('hr.department', string='Department',track_visibility='onchange') 

#在xml中写入这段话
 <div class="oe_chatter">
            <field name="message_follower_ids" widget="mail_followers"/>
            <field name="message_ids" widget="mail_thread"/>
        </div>

实现效果如下图

三、odoo message_post

tracked_fields = self.env['hr.employee'].fields_get(['company_id','department_id','job_id'])

changes, tracking_value_ids = asset._message_track(tracked_fields, old_values) #old_values修改前的值
if changes:
   self.env['hr.employee'].message_post(subject=_('Depreciation board modified'), body=self.name, tracking_value_ids=tracking_value_ids)

tracked_fields监测字段,当字段发生变化时,利用message_post发送消息,效果如下:

原文地址:https://www.cnblogs.com/wanxiangIT/p/10508658.html