Skip to Content
Menu
Dette spørgsmål er blevet anmeldt
1 Svar
4640 Visninger
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
Kassér
Forfatter Bedste svar

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
Kassér
Related Posts Besvarelser Visninger Aktivitet
1
jul. 23
3617
4
jun. 25
8831
2
okt. 24
7735
2
sep. 24
5187
2
mar. 24
3352