Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python odoo onchange无法获取数据_Python_Python 2.7_Openerp_Odoo 8 - Fatal编程技术网

Python odoo onchange无法获取数据

Python odoo onchange无法获取数据,python,python-2.7,openerp,odoo-8,Python,Python 2.7,Openerp,Odoo 8,在奥多,我试图再次改变。条件是,在插入类似“SO00012”的数据后,我的代码将尝试通过插入代码浏览数据。这是我的密码: def onchange_data(self, cr, uid, vals, ids, context=None): stocks_picking_onchange = self.browse(cr, uid) products = [] stiks = self.browse(cr, uid, ids) objk = self.pool

在奥多,我试图再次改变。条件是,在插入类似“SO00012”的数据后,我的代码将尝试通过插入代码浏览数据。这是我的密码:

 def onchange_data(self, cr, uid, vals, ids, context=None):

    stocks_picking_onchange = self.browse(cr, uid)
    products = []

    stiks = self.browse(cr, uid, ids)
    objk = self.pool.get('purchase.order')
    objeck = self.pool.get('data.stock.picking')
    objecks = objk.search(cr, uid,[('name','=',stiks.origin)])
    datas = objk.browse(cr, uid, objecks)

    if datas:
        for data in datas:
            for line in data.order_line:
                products.append((0, 0, {
                    'data1': line.id,
                    'data2' : line.product_qty,
                    'data3' : line.bonus,
                }))
但我从未得到数据,我的朋友建议我添加方法create,如:

def onchange_data(self, cr, uid, vals, ids, context=None):
    res =  super(stock_picking, self).create(cr, uid, vals, context=context)
    stocks_picking_onchange = self.browse(cr, uid)
    products = []

但是,它仍然不起作用

的确,您创建了记录列表,但没有影响模型的任何字段:

if datas:
        products.append((5,0,false)) # if you want to remove all old records
        # i think without this line you will add the new record to the old list
        for data in datas:
            for line in data.order_line:
                products.append((0, 0, {
                    'data1': line.id,
                    'data2' : line.product_qty,
                    'data3' : line.bonus,
                }))
# return your value
return {'values' : {'your_field_name_here': products}}

关于onchange data1,您应该知道的一件事是,data2和data3必须出现在字段的树中,否则web客户端将不知道在哪里存储它们,它们将丢失

我在onchange()方法中没有看到return语句。