У меня есть несколько типов организации с отношением many2many, описывающим типы, которые могут быть родительскими для других типов (например, отдел может быть родителем для суб-отдела и рабочей группы). Это НЕ строгая иерархия (рабочая группа может быть родительской для других рабочих групп), следовательно, отношение many2many.Odoo 8: Many2many фильтр домена
У меня есть два поля на моем объекте организации_type: allowed_parent_type_ids
и обратный allowed_children_type_ids
.
Теперь я хочу ограничить поле типа организации в объекте организации в зависимости от его родительского элемента, поэтому дочерний элемент «отдела» может выбирать только типы организации, разрешенные для дочерних подразделений и т. Д.
С моей точки зрения формы, я попробовал:
<field
name="organization_type_id"
domain="[('id', 'in', parent_id.organization_type_id.allowed_children_ids)]"
/>
Я также попытался поставить связанный поле с разрешенными видами на моем объекте организации, но я всегда заканчивается с сообщением об ошибке. Моя последняя попытка была:
domain=[('id', 'in', allowed_type_ids)]
Это дает сообщение об ошибке:
TypeError: not all arguments converted during string formatting
Клиент фактически извлекает объект JSON, как «allowed_type_ids» = [0,1,2]
и если я заменю allowed_type_ids в выражении домена с [0,1,2]
ошибок нет, и я получаю три типа организации в моем выборе ...
Попробуйте использовать domain = "[('id', 'in', allowed_children_ids [0] [2])]" –