Skip to Content
เมนู
คุณต้องลงทะเบียนเพื่อโต้ตอบกับคอมมูนิตี้
คำถามนี้ถูกตั้งค่าสถานะ
1 ตอบกลับ
18942 มุมมอง

I have got a dropdown showing lot numbers in Manufacturing picking operations. The problem is I do not want to show the lot numbers having no product i.e. 0 quantity. I have created another selection field and populated the lot numbers dynamically, however I am getting a list attribute error while populating dropdown:

AttributeError: 'list' object has no attribute 'get'

Here is the model selection field and code to populate it:

@api.onchange('location_id')
def _fetch_non_empty_lots(self):
 lots = [] 
 quants = self.env['stock.quant'].search([('location_id.id','=',self.location_id.id), 
 ('product_id.id', '=', self.product_id.id), ('quantity', '>', 0)]) 
 for quant in quants: 
    lots.append((str(quant.lot_id.id),str(quant.lot_id.display_name)))
 return lots 
x_lot_id = fields.Selection(selection="_fetch_non_empty_lots", name="Non Empty Lots")
## declare field

When the list is empty, there is no error. When there is non-empty lot then I am getting the eror. Ineed some assistance.

อวตาร
ละทิ้ง
คำตอบที่ดีที่สุด

Try removing the .id on your search parameters for the 'stock.quant' recordsets.

Like this:

quants = self.env['stock.quant'].search([('location_id','=',self.location_id.id), 
 ('product_id', '=', self.product_id.id), ('quantity', '>', 0)])
อวตาร
ละทิ้ง
ผู้เขียน

it doesn't work .. the issue is with what I am returning i.e. list

Related Posts ตอบกลับ มุมมอง กิจกรรม
2
ธ.ค. 22
24147
1
ต.ค. 19
5768
1
ส.ค. 19
3861
How to track One2many field in Odoo12? แก้ไขแล้ว
3
พ.ย. 23
17508
0
พ.ย. 23
2378