Ir al contenido
Menú
Se marcó esta pregunta
2 Respuestas
19769 Vistas

I am trying to pass a list of order_ids to .filtered so as to exclude them from my recordset but I seem to be getting an error global name "order_ids" is not defined. Below is an example of my code.

active_ids = ['34','35',36']
p = self.env['stock.pack.operation']
p_obj = p.search([['id','in',active_ids]])
order_ids = ['1','2','3'] 
p_obj.filtered(lambda r: r.origin_id.id IN order_ids)
Avatar
Descartar
Autor

This issue is regarding Odoo 9.

Autor

Thanks for your reply. I wanted to use filtered so I could filter the recordset already being used rather than creating a completely new recordset.

Mejor respuesta

Hello, 

I use with_context to enable this:

```

p_obj.with_context(filter_order_ids=order_ids).filtered(lambda r: r.origin_id.id IN r._context['filter_order_ids'])

```

Think it can be your solution ...

Avatar
Descartar
Mejor respuesta

Search for specific ids makes no sense(at least that you want to make sure that an id really exists), use a direct browse to that like:

 self.env['stock.pack.operation'].browse([34,35,36])

or you could directly search for that using the proper domain, because 

p_obj = self.env['stock.pack.operation'].search([('id', 'in, [34,35,36]), ('origin_id.id', 'in', [1,2,3]))


Avatar
Descartar
Publicaciones relacionadas Respuestas Vistas Actividad
1
dic 17
7336
1
ago 17
8543
2
may 24
3320
1
dic 19
2728
1
jun 25
1480