У меня есть несколько типов организации с отношением many2many, описывающим типы, которые могут быть родительскими для других типов (например, отдел может быть родительским подразделением и рабочей группой). Это НЕ строгая иерархия (рабочая группа может быть родительской для других рабочих групп), следовательно, отношение many2many.
У меня есть два поля для объекта organization_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]
, и если я заменю allow_type_ids в выражении домена с помощью [0,1,2]
, ошибок нет, и я получаю три типа организации в моем выборе...