在odoo12开发过程中很可能会遇到部分页面需要进行消息提示的情况。
odoo12中可以使用raise抛出如UserError、Warning等异常进行消息提示,但是效果不友好。
上面有个Odoo Server Error提示,很不美观,并且在Dialog框中弹出提示时,存在订单行字段值丢失的情况。
方案:
1、创建my_message_wizard.py文件,并在__init__.py中添加。
2、my_message_wizard.py的内容如下:
class MyMessageWizard(models.TransientModel): _name = 'my.message.wizard' message = fields.Text('message', required=True) @api.multi def action_confirm(self): return {'type': 'ir.actions.act_window_close'}
3、在view文件夹下创建my_message_wizard.xml文件,并在__manifest__.py中引入。
<odoo> <record id="my_message_wizard_form" model="ir.ui.view"> <field name="name">my.message.wizard.form</field> <field name="model">my.message.wizard</field> <field name="arch" type="xml"> <form> <p> <field name="message" readonly="1"/> </p> <footer> <button name="action_confirm" string="确认" type="object" default_focus="1" class="oe_highlight"/> </footer> </form> </field> </record> </odoo>
4、使用:
if <condition>: message = self.env['my.message.wizard'].create({'message': 'message'}) return { 'name': '提示', 'type': 'ir.actions.act_window', 'view_mode': 'form', 'res_model': 'my.message.wizard', 'res_id': message.id, 'target': 'new' }
5、效果:
以上就是自定义消息提示的过程。
温馨提示,记得升级对应的模块。