Como utilizar child of para buscar registros hijos en Odoo
Algo muy frecuente y que estoy seguro que te as preguntado es como poder obtener las categorías hijas de un registro, por ejemplo en los modelos:
- Ubicaciones
- Categorias
- Partners
Existen columnas dentro de los lineamientos de Odoo que nos permiten tener un control en un esquema de arbol:
- Parent Left
- Parent Right
- Parent ID
Con estos campos podemos saber de donde la estructura de la que se compone nuestro registro y por medio de ellas buscar sus hijos:
1 2 3 4 5 6 7 8 9 10 | ## Iniciamos nuestra lista final ### all_record_ids = [] #### La variable que usare como ejemplo es record, que es una instancia de un registro de X tabla que usa el esquema de hijos ### #### Iniciamos nuestro dominio, en este ejemplo usare una variable para no tener todo en una sola linea #### child_dom = [('parent_left', '>', record.parent_left), ('parent_left', '<', record.parent_right)] #### Buscamos los registros que cumplen mi condicion #### child_records = self.search(child_dom) #### Agregamos a mi lista final, el registro principal (record) y agregamos los hijos #### all_record_ids.append(record.id) all_record_ids=all_record_ids+child_records.ids |
Yo por ejemplo, necesitaba saber las categorías hijas de un registro en donde mi variable era category:
1 2 3 | product_category = self.env['product.category'] child_dom = [('parent_left', '>', category.parent_left), ('parent_left', '<', category.parent_right)] child_categs = product_category.search(child_dom) |