我有三种模式
class ZohoTags(models.Model):
_name = 'zoho.tags'
name = fields.Char(string="Tags")
tag_id = fields.Char(string="Tag Id")
class TagsLine(models.Model):
_name = 'zoho.tags.line'
x_zoho_tags = fields.Many2one('zoho.tags', string='Tags')
x_tags_option = fields.Many2one('zoho.tag.option', string='Tags Option', domain="[('tag_ids', '=', x_zoho_tags.tag_id)]")
rules_id = fields.Many2one('hr.salary.rule')
class TagOptions(models.Model):
_name = 'zoho.tag.option'
name = fields.Char(string="tag option name")
option_tag_id = fields.Char(string="tag option id")
tag_ids = fields.Char(string="tag_id")
在
zoho.tags
模型中,我有一个名为tag_id
的字段,在zoho.tag.option
中,我有tag_ids
,并且两者都具有相同的值。在
zoho.tags.line
模型中,我有一个名为Many2one
的x_zoho_tags
字段,该字段显示标签的列表,例如:division, state, etc.
和x_tags_option
,其中显示了每个标签的选项,例如:标签(部门)具有选项(A,B,C),并且这些选项具有与(部门)标签相同的
tag_ids
存储我想将域添加到
x_tags_option
以便过滤x_tag_option
仅显示具有相同
tag_id
的选项。因此,当我从
division
中选择x_zoho_tags
时,x_tags_option
应该仅显示A, B and C
。我试图在下面添加此行,但是它不起作用
domain="[('tag_ids', '=', x_zoho_tags.tag_id)]
最佳答案
我知道了。这是我的方法:
在python中:
@api.onchange('x_zoho_tags')
def onchange_tags(self):
res = {}
if self.x_zoho_tags:
res['domain'] = {'x_tags_option': [('tag_ids', '=', self.x_zoho_tags.tag_id)]}
return res
在XML中:
<field name="x_zoho_tags"/>
<field name="x_tags_option" onchange="onchange_tags(x_zoho_tags)"/>