重复 webhook ODOO - 忽略外部请求?

问题描述

odoo 中,我继承了 odoo 中的 create、write 和 unlink 方法,以便在调用这些方法时发送 webhook。 webhook 正在工作,但是它会被反复调用,直到我强制 odoo 重新启动。 webhook 触发另一个模块,该模块第二次更新记录,然后 odoo 再次触发 write 方法(因为记录已从另一个模块更新)。是否可以仅在从其自己的模块触发时调用此写入方法而忽略任何其他模块?

def write(self,vals):
    record = super().write(vals)
    self.ensure_one()
    self.message_post(body="<strong style=\"color: #03355b\">Document Updated</strong>")
    record = super().write(vals)
    url = '########'
    webhook_data = {
        'post_title': self.title,'folder': self.folder,'post_content': self.post_content,'portal_id': self.id,'status': self.status,'webhook_action': 'update'
        }
    response = requests.post(
        url,data=json.dumps(webhook_data),headers={'Content-Type': 'application/json','Authentication': '####'}
    )
    return record

解决方法

可能不是最好的解决方案,但以防万一它对其他人有帮助..

第一个触发器不会更新颜色字段,而返回的 webhook 会更新。所以我在方法的开头添加了 if not 'color' in vals:,然后它忽略了第二个 http 请求。