gpt4 book ai didi

python - 在python onchange方法中隐藏字段odoo

转载 作者:行者123 更新时间:2023-11-28 16:23:56 27 4
gpt4 key购买 nike

有个小问题,想研究一下。我可以在 odoo 8 中隐藏基于 attrs 的字段,但是有没有办法在 python 代码中做同样的事情。下面是代码:

<field name="test" attrs="{'invisible':[('role', '=', 'testrole')]}" />

这样就可以了(意味着如果字段名称 role 的值为 'test role' 则隐藏该字段)然后我尝试使用 python 和角色字段上的 onchange 方法实现相同的功能,如下所示:

<field name="role" on_change="hide(role)"/>

在我的模型中:

def hide(self,cr,uid,ids,role) :
res = {'value':{}}
if role == 'testrole':
res['value']['test']['attrs']['invisible']=True
return res

但这行不通,有什么建议吗?

谢谢,

最佳答案

我也更喜欢使用第二个字段的方式,但我会选择一个计算字段,例如:

role = # your role field definition
hide = field.Boolean(string='Hide', compute="_compute_hide")

@api.depends('role')
def _compute_hide(self):
# simple logic, but you can do much more here
if self.role == 'testrole':
self.hide = True
else:
self.hide = False

现在您可以在该 View 的每个其他字段上使用您自己提到的 attrs:

<field name="fieldToHide" attrs="{'invisible':[('hide', '=', True)]}" />

关于python - 在python onchange方法中隐藏字段odoo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38127562/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com