Skip to Content
Menu
This question has been flagged
5 Replies
21148 Views

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)"/>

Avatar
Discard
Best Answer

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...........


Avatar
Discard
Best Answer

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. 


Avatar
Discard
Best Answer

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

Avatar
Discard
Author

Hi vadivel , I got same Error....

Author

/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