Odoo 9/10:如何以编程方式获取 parents objects 的所有孩子 ID,包括他们的 parents ID?

Odoo 9/10 : How to get all childs ids of parents objects including their parents ids programmatically?

我在 res_users 和 product_category objects 之间有一个多对多关系。 所以我这样定义它:

class ResPartner(models.Model):
    _inherit = 'res.partner'

    category_ids = fields.Many2many('product.category', 'category_user_rel', 'pcu_user_id', 'pcu_category_id', string='Assign To Product Categories')

class ProductCategory(models.Model):
    _inherit = 'product.category'

    user_ids = fields.Many2many('res.users', 'category_user_rel', 'pcu_category_id', 'pcu_user_id', string='Assign To Users')

现在,我想以编程方式获取当前用户的所有类别及其 sub-categories ID 的列表?

谢谢。

您可以使用当前用户的相关合作伙伴获取当前用户category_ids

partner_categories = self.env.user.partner_id.category_ids

使用 child_of 运算符检索所有子类别:

self.env['product.category'].search([('id', 'child_of', partner_categories.ids)])