在odoo条件下的隐形场

时间:2017-07-06 13:04:32

标签: openerp

我选择特定日记时,我想隐藏一个字段。

<field name="any_field" attrs="{'invisible':[('journal_id','=',10])]}"/>

对于上面的代码工作正常。

我确定这不是检查条件的方法。所以,我试过这种方式。

<field name="any_field" attrs="{'invisible':[('journal_id','=',ref('my_module.account_journal_10'))]}"/>

它工作然后我尝试使用期刊上的静态字段,例如。代码。

<field name="any_field" attrs="{'invisible':[('journal_id.code','=','CARD')]}"/>

但仍然没有工作,并从视图中获得错误。

我在想,如果我可以像。域名一样从.py返回attrs。

例如

return {'domain':
            {
              'any_field':[('journal_id','=',self.env.ref('my_module.account_journal_10').id)]
            }
        }

有人可以帮助我吗? 谢谢。

1 个答案:

答案 0 :(得分:2)

据我所知,这些attrs域/过滤器是客户端的,因此您无法使用journal_id.codepartner_id.customer之类的内容,因为客户端不知道这样的内容数据

可能的解决方法是在您尝试执行此操作的模型上定义相关字段。我们假设模型为my.model,并且已经有Many2one字段journal_id

journal_code = fields.Char(string="Journal Code", related="journal_id.code")

现在您需要扩展my.model的视图:

<field name="journal_code" invisible="1" />
<field name="any_field" attrs="{'invisible':[('journal_code','=','CARD')]}"/>