Ir al contenido
Menú
Se marcó esta pregunta
2 Respuestas
20085 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
7604
1
ago 17
8801
2
may 24
3555
1
dic 19
2930
1
ago 25
325