跳至內容
選單
此問題已被標幟
5 回覆
21644 瀏覽次數

when I try to run below code i got this error 


==================================================

File "/home/user/odoo/addons/sale_validation/sale.py", line 708, in on_change_line_product

first_line_rec = self.browse(cr, uid, ids, context=context)[0]

File "/home/user/odoo/openerp/models.py", line 5476, in __getitem__

return self._browse(self.env, (self._ids[key],))

IndexError: tuple index out of range

=================================

class purchase_order_line(osv.osv):

_inherit = 'purchase.order.line'

def on_change_line_product(self, cr, uid, ids,product_qty,context=None):

if context is None: context = {}

res = {}

line_num = 1

first_line_rec = self.browse(cr, uid, ids, context=context)[0]

for line_rec in first_line_rec.order_id.order_line:

res[line_rec.id] = line_num

line_num += 1

return res

_columns={

'line_no': fields.integer(string='Line Number'),

}


xml tag---------------

<field name="line_no" on_change="on_change_line_product(product_qty,context)"/>

頭像
捨棄
最佳答案

Hi,

surround your code with this if statement. Use like this:-

if ids:
first_line_rec = self.browse(cr, uid, ids, context=context)[0]

You are getting this error when ids is empty and you are indexing that empty ids with [0].

Try with above code...

Hope this helps...........


頭像
捨棄
最佳答案

Hello Dep,

Please remove the [0] index from this line.

first_line_rec = self.browse(cr, uid, ids, context=context)[0]

This will not giving you an error, but I didn't get you,what are you trying to do. because of there is no logic to write on change method on line number.

Hope you clear first what you want to do. 

Above line will resolve you issue. 


頭像
捨棄
最佳答案

Hi Dep, You can below code: first_line_rec = self.browse(cr, uid, ids[0], context=context) for line_rec in first_line_rec.order_id.order_line: res[line_rec.id] = line_num line_num += 1 return res

頭像
捨棄
作者

Hi vadivel , I got same Error....

作者

/sale.py", line 708, in on_change_line_product first_line_rec = self.browse(cr, uid, ids[0], context=context) IndexError: list index out of range