-1

on_change イベントの後、レコードを保存し、編集モードでフォームを開く必要があります。

on_change イベント 前の画像を参照 保存前

on_change イベント後の図を参照してください。 保存後

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>

これどうやってするの?

4

1 に答える 1

0

新しいqtyものを書くには、次を使用するだけです。

self.qty = new_value

onchange のドキュメントから:

onchangeメソッドは仮想レコードで機能します これらのレコードへの割り当てはデータベースに書き込まれず、クライアントに送り返す値を知るために使用されます

Saveボタンをクリックすると、新しい数量がデータベースに保存されます

于 2015-11-05T13:03:03.723 に答える