我试图在我的xml视图文件中的模型之间进行过滤。但我不能使用外部模型的值。
实际上,我尝试根据之前的选择过滤字段(M2O)的选项。
Myview.xml试图渲染这个
属性:[从列表中选择一个属性]
版本:[此处选择版本(来自先前所选属性的可用版本)]
有我的模特
alternative_model
code = fields.Char('code', required=True, size=6)
description = fields.Char('description', required=True)
attribute_type_id = fields.Many2one('attribute', required=True)
attribute_version_id = fields.Many2one('version', required=True)
alternative_model
code = fields.Char('code', required=True, size=2)
description = fields.Char('description', required=True)
alternative_ids = fields.One2many('alternative','attribute_version_id')
alternative_model
code = fields.Char('code',required=True,size=6)
attribute_id = fields.Many2one('attribute',required=True)
description = fields.Char('description',required=True)
tag_ids = fields.One2many('tag','attribute_version_id')
我使用以下域名:
<field string="version" name="attribute_version_id" domain="[([attribute_type_id.code], '=',[attribute_version_id.attribute_id.code])]"/>
答案 0 :(得分:1)
在这种情况下,您需要使用onchange方法来更新域 你的许多领域:
@api.onchange('attribute_type_id')
def onchage_attribute(self):
if self.attribute_type_id:# check if the user has selected an attribute
# cancel the selected version
#but you can check if it much the domain before seting to False
self.attribute_version_id = False
# return the new domain
return {'domain':{'attribute_version_id':[('attribute_id', '=', self.attribute_type_id.id)]}
else: # remove the domain
return {'domain':{'attribute_version_id':[]}
答案 1 :(得分:0)
你的xml似乎错了。
1. /您正在尝试使用相同的字段尝试在屏幕上显示该字段,这是错误的。
2. /此域名不起作用,因为它不允许访问运营商右侧的其他模型属性,在您的情况下它是'='。
尝试对'attribute_version_id'使用'name_search'方法,您可以使用上下文传递所需的值,并在此基础上,可以过滤掉'attribute_version_id'的记录。
尝试“相关”字段。