Odoo 8 и дочерний фильтр

#python #openerp #odoo-8

#python #openerp #odoo-8

Вопрос:

У меня есть иерархические категории в Odoo, подобные этому

All
Saleable
Accessories
Audio
Video
Components

чтобы получить, например, все дочерние элементы Accessories категории, я использую приведенный ниже код: listcat = self.env["product.category"].search([('id', 'child_of', 8)]) . Где 8 — идентификатор Accessories . И в результате : product(8,17,18)

Моя проблема заключается в том, что при поиске, если компонент (id = 9) является дочерним элементом аксессуаров, он всегда выдает мне 1 (что означает, что он дочерний).

 exist_in_category=listcat.search_count([('id','=',9)])
  

Комментарии:

1. просто имейте в виду, что метод search() выдает и возвращает идентификаторы объектов, в то время как метод search_count() дает нам общее количество записей в этом объекте

2. Но… В чем вопрос? Вы выполняете простой search_count по id = 9 и поиск с помощью child_of … Мне кажется, что все работает так, как ожидалось. Потому что вы всегда найдете только один элемент с при фильтрации по одному идентификатору.