【问题标题】:Odoo 8.0: To save record after on_change eventOdoo 8.0:在 on_change 事件后保存记录
【发布时间】:2015-11-05 08:15:38
【问题描述】:

我需要在 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>

我该怎么做?

【问题讨论】:

    标签: openerp odoo-8 odoo-view


    【解决方案1】:

    要编写新的qty,您只需使用:

    self.qty = new_value
    

    来自onchange 文档:

    onchange方法对这些记录进行虚拟记录的赋值不会写入数据库,只是用来知道将哪个值发送回客户端

    当您点击Save按钮时,新的数量将被保存到数据库中

    【讨论】:

    • 我认为这段代码不能成为一个真实的 ID。我需要一个真实 ID 而不是 self.id 字段中的 NewID 对象
    猜你喜欢
    • 2014-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-04
    • 1970-01-01
    • 2021-11-22
    • 1970-01-01
    相关资源
    最近更新 更多