Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
5 Trả lời
21635 Lượt xem

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

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

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


Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

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. 


Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

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

Ảnh đại diện
Huỷ bỏ
Tác giả

Hi vadivel , I got same Error....

Tác giả

/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