Skip to Content
Menú
This question has been flagged
1 Respondre
18023 Vistes

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
Descartar
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
Descartar
Autor

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

Related Posts Respostes Vistes Activitat
2
de des. 22
23497
1
d’oct. 19
5408
1
d’ag. 19
3401
3
de nov. 23
16720
0
de nov. 23
1763