我目前正在开发一个odoo12ce模块,该模块必须包含一个表,其中包含狗的注册信息以及狗的父亲和母亲(类似于纯种狗)。在现场,我只想得到公狗和住在同一个城市的狗
get_domain_male(self):
return [('gender', '=', 'male'), ('city', '=', self.city)]
father_code = fields.Many2one('asc.dog', string="Fathers code", domain = get_domain_male)
asc.dog是同一个模型,这意味着该模型是自动引用的
当我运行代码段时,城市已经设置好,字段没有显示任何内容,因为self没有按预期识别。当我打印它时,它只是False,代码在我进入表单视图之前运行
代码可能有什么问题,还有其他过滤方法吗?? 提前感谢你的帮助
来自奥多documentation
所以,基本上您可以将
domain
设置为字符串或元组列表,在这种情况下,您可以使用字符串来设置如下域因此,它将从客户端或视图获取城市值,并相应地过滤
asc.dog
记录。当然,要从客户端获取值,city
字段必须存在于视图中,否则它将生成错误field not found in the view
或者,您也可以在视图定义中设置域,而不是在字段定义中设置
domain
唯一的区别是,如果在字段定义中执行此操作,则由
father_code
组成的每个视图将始终自动设置此域,但必须包括city
,可见或不可见在这里,我们使用一个onchange字段,以便在父字段更改时过滤dog字段
通过循环记录来避免单例和相关问题几乎总是很重要的
相关问题 更多 >
编程相关推荐