Skip to Content
Menu
This question has been flagged
1 Reply
4078 Views
I try to write to Chatter Box, but I have the below error:
ValueError: Posting a message should be done on a business document. Use message_notify to send a notification to an user.

My code:
@api.onchange("my_field")
def write_to_chatter(self):
​body = "My Message!"
   self.message_post(body=body, subtype='my_subtype')

Sources:

Add Message To Chatter From Code in Odoo

Cybrosys || How To Post A Message To Chatter In Odoo 16


Avatar
Discard
Author Best Answer

Solved:

I used the write() method, I post a log note when the user saves their data.
def write(self, vals):
        if 'name' in vals:
            new_value = vals['name']
            old_value = self.name.id
            if new_value != old_value:
                message_body = _("%(user)s changed the Name to %(user_name)s",
                                 user=self.env.user.name,
                                 user_name=self.env['my.module'].search(domain=[('id', '=', new_value)]).name)
                self.message_post(body=message_body, message_type='notification')
        res = super().write(vals)
        return res
Avatar
Discard
Related Posts Replies Views Activity
1
Jul 23
3004
2
Oct 24
6892
2
Sep 24
4705
2
Mar 24
2698
2
Mar 24
1482