odoo 如何搜索many2many字段

  • 首先要知道many2many字段关系存储的表格:a_id_b_id_rel,和表格中的字段a_id, b_id
  • 取得其中一个字段的具体值,例如,a_id字段对应的值为a
  • 使用以下sql查询数据库(一定要使用sql函数,使用odoo自带的search会报错找不到表格)

    sql = 'select b_id from a_id_b_id_rel where a_id = %s' % a

    request.env.cr.execute(sql)

    result = request.env.cr.dictfetchall()

  • result中就是sql结果的列表,格式如下:

    [

        {'b_id': b1},

        {'b_id': b2},

        ...

    ]

  • 从结果中取出需要的值,得到b_id的值组成的列表

    b_ids = [x['b_id'] for x in result]

你可能感兴趣的:(odoo,odoo,many2many,搜索)