Odoo 10使用search()方法搜索活动和非活动记录

时间:2018-12-10 14:53:21

标签: python-2.7 orm odoo odoo-10

我有很多2个字段location_from_ids,并试图找到location_ids的所有子项。

  location_from_ids = fields.Many2many(comodel_name='stock.location',relation='report_stock_config_location_from_rel',column1='report_id',column2='location_id',string='Locations From', context={'active_test': False})

我正在使用search()方法来获取location_ids的所有子项:

def _get_filter(self, report):
    res = ''
    if report.location_from_ids:
        location_ids = [l.id for l in report.location_from_ids]
        locations = self.env['stock.location'].search([('id', 'child_of', location_ids), ('active', 'in', ('t', 'f'))])

我需要获取所有位置(活动和非活动),但仅获取活动记录。如何取得所有记录:有效和无效?

2 个答案:

答案 0 :(得分:1)

只需“停用”针对搜索的活动测试即可:

locations = self.env['stock.location'].with_context(
    active_test=False).search(
        [('id', 'child_of', location_ids)])

答案 1 :(得分:0)

布宜诺斯艾利斯布宜诺斯艾利斯歌剧院的补全版 https://odoo-new-api-guide-line.readthedocs.io/en/latest/environment.html#environment

支持的操作 RecordSet还支持集操作,您可以添加,合并和相交,...记录集:

recset1中的记录#包含 记录不在recset1#不包括 recset1 + recset2#扩展 recset1 | recset2#联合 recset1和recset2#相交 recset1-recset2#差异 recset.copy()#复制记录集(不是深拷贝)