Odoo 8.0:在on_change事件后保存记录

时间:2015-11-05 08:15:39

标签: openerp odoo-8 odoo-view

我需要在on_change事件后保存记录并在编辑模式下打开表单。

在on_change事件之前查看图片 Before save

在on_change事件后查看图片。 After save

在on_change事件后我需要保存记录。 我需要表单在编辑模式下重绘

班级:

from openerp import models, fields, api

class Master(models.Model):
    _name = 'att.master'

    name = fields.Char("Name")
    qty = fields.Integer("Qty")

    @api.onchange('name')
    def _on_change_name(self):
        if self.name:
            self.qty += 100
            print 'The on_change event was happened'
            self.env['att.master'].create({'name': self.name, 'qty': self.qty} )

观点:

<?xml version="1.0" encoding="UTF-8"?>
 <openerp>
    <data>
        <!-- form AGREEMENT -->
        <record model="ir.ui.view" id="att_master_view_form">
            <field name="name">Master</field>
            <field name="model">att.master</field>
            <field name="arch" type="xml">
            <form string="Master">
                    <sheet>
                        <group colspan="4">
                                <field name="name"/>
                                <field name="qty"/>
                                <field name="id"/>
                        </group>
                    </sheet>
            </form>
            </field>
        </record>

        <record model="ir.ui.view" id="att_master_view_tree">
            <field name="name">List of master</field>
            <field name="model">att.master</field>
            <field name="arch" type="xml">
                <tree string="List of master">
                    <field name="name"/>
                    <field name="qty"/>
                    <field name="id"/>
                </tree>
            </field>
        </record>

        <!-- window action -->
        <record model="ir.actions.act_window" id="att_master_list_action">
            <field name="name">Master</field>
            <field name="res_model">att.master</field>
            <field name="view_mode">tree,form</field>
        </record>

        <menuitem id="att_master_menuitem" name="Master"
                  parent="att_menu_agreement"
                  action="att_master_list_action"/>
    </data>
</openerp>

我该怎么做?

1 个答案:

答案 0 :(得分:0)

要保存更改记录,请使用create方法中的write替换_on_change_name,然后只需用鼠标单击鼠标即可查看更改。 你班上的最后一行应该是:

self.env['att.master'].write({'name': self.name, 'qty': self.qty} )