تخطي للذهاب إلى المحتوى
القائمة
لقد تم الإبلاغ عن هذا السؤال
2 الردود
20138 أدوات العرض

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)
الصورة الرمزية
إهمال
الكاتب

This issue is regarding Odoo 9.

الكاتب

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.

أفضل إجابة

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 ...

الصورة الرمزية
إهمال
أفضل إجابة

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]))


الصورة الرمزية
إهمال
المنشورات ذات الصلة الردود أدوات العرض النشاط
1
ديسمبر 17
7681
1
أغسطس 17
8851
2
مايو 24
3602
1
ديسمبر 19
3021
1
أغسطس 25
475