openner 7中的onchange()方法不起作用

时间:2016-10-25 12:23:55

标签: python xml openerp

这是我的python文件。

from openerp.osv import fields, osv

select_list=[('SL01','SL01'),('SL02','SL02'),('SL03','SL03')]
select_sub_list=[('EDS01','EDS01'),('EDS02','EDS02'),('EDS03','EDS03')]


class laser_products(osv.osv):

  _inherit = "product.product"

  _columns = {
    'laser_product_select': fields.selection(select_list,'Main category'),
    'laser_sub_product_select': fields.selection(select_sub_list,'Sub category'),
    'temp':fields.char("Product Code")
  }

  def onchange_laser_product_select(self,cr,uid,ids,laser_product_select,context=None):
     temp=str(laser_product_select)
     return temp   

laser_products()

这是我的XML文件。

<?xml version="1.0" encoding="utf-8"?>
<openerp>
  <data>
    <record model="ir.ui.view" id="laser_product_project">
        <field name="name">product.normal.form</field>
        <field name="model">product.product</field>
        <field name="inherit_id" ref="product.product_normal_form_view" />
        <field name="arch" type="xml">

                <field name='list_price' position="after">
                    <field name="laser_product_select" on_change="onchange_laser_product_select(laser_product_select,context)"/>
                        <field name="laser_sub_product_select" />
                        <field name="temp"/>           
                </field>

        </field>
    </record>
  </data>
</openerp>

当我选择主类别字段时,我想将产品代码字段更改为SL01但在选择之后它没有显示在产品代码字段中,也没有显示任何错误。

请提供正确的密码或告诉我错误的地方。

1 个答案:

答案 0 :(得分:0)

onchange()方法替换为以下内容:

def onchange_laser_product_select(self, cr, uid, ids, laser_product_select, context=None):

    value = {}

    if laser_product_select:
       value['temp'] = str(laser_product_select)

       #generic formate to update value onchange
       #value['field_name'] = field_value

    return {'value': value}