我有几种具有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)]"
/>
Run Code Online (Sandbox Code Playgroud)
我还试图在我的组织对象上放置一个允许类型的相关字段,但我总是会收到一条错误消息.我的最后一次尝试是:
domain=[('id', 'in', allowed_type_ids)]
Run Code Online (Sandbox Code Playgroud)
这给出了一条错误消息:
TypeError: not all arguments converted during string formatting
Run Code Online (Sandbox Code Playgroud)
客户端实际上提取了一个JSON对象,如"allowed_type_ids"= [0,1,2]并且如果我在域表达式中替换allowed_type_ids [0,1,2]并且没有错误,我在我的选择中获得了三种组织类型...
我有一个模型,我想在其中访问由字符串给出的字段。例子:
def test(self):
field = 'name'
name = getattr(self, field)
Run Code Online (Sandbox Code Playgroud)
这工作正常 - 名称设置为 self.name。但后来我想访问相关领域:
def test2(self):
field = 'partner_id.name'
name = getattr(self, field)
Run Code Online (Sandbox Code Playgroud)
这是行不通的(因为“partner_id.name”本身不存在)。知道如何正确做吗?