Skip to Content
Menu
This question has been flagged
1 Reply
16645 Views

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.

Avatar
Discard
Best Answer

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)])
Avatar
Discard
Author

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

Related Posts Replies Views Activity
2
Dec 22
22462
1
Oct 19
4614
1
Aug 19
2655
3
Nov 23
15302
0
Nov 23
749