python onchange方法中的隐藏字段odoo

python onchange方法中的隐藏字段odoo,python,openerp,Python,Openerp,我有一个小问题,只是想研究一下。 我可以在Odoo8中隐藏一个基于attrs的字段,但是在python代码中有没有同样的方法呢。代码如下: <field name="test" attrs="{'invisible':[('role', '=', 'testrole')]}" /> 但这不管用, 有什么建议吗 谢谢,您的问题的答案在此链接中。但是最好只在XML代码中使用“不可见”,否则它将无法正常工作 http://stackoverflow.com/questions/31532

我有一个小问题,只是想研究一下。 我可以在Odoo8中隐藏一个基于attrs的字段,但是在python代码中有没有同样的方法呢。代码如下:

<field name="test" attrs="{'invisible':[('role', '=', 'testrole')]}" />
但这不管用, 有什么建议吗


谢谢,

您的问题的答案在此链接中。但是最好只在XML代码中使用“不可见”,否则它将无法正常工作


http://stackoverflow.com/questions/31532390/invisible-true-false-parameter-exist-or-not-in-odoo-8

在这种情况下,您可以创建一个新的布尔字段,该字段默认设置为False,并且在“rol”字段中不可见={'Boolean_field','=',True} onchange方法也适用,您可以将onchange函数的“boolean\u field”值设置为True

bool = field.boolean('Boolean')

_default { 'bool': False }


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

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

role=#您的角色字段定义
hide=field.Boolean(string='hide',compute=“\u compute\u hide”)
@api.depends('角色')
定义计算隐藏(自):
#简单的逻辑,但你可以在这里做更多
如果self.role==“testrole”:
self.hide=True
其他:
self.hide=False
现在,您可以在该视图中的每个其他字段上使用您自己提到的
attrs



Hi Ahmed,它说XML中不可见,但我正在寻找Pythontanks CZoellner中的变更方法实现,我知道我需要数据库中的一个字段。这只能是解决方案。实际上,这个解决方案在数据库中没有字段的情况下也可以工作<代码>隐藏是计算出来的,但从未存储在数据库中。哦,谢谢CZoellner,我会试试这个。非常感谢。
def hide(self,cr,uid,ids,role) :
    res = {'value':{}}
    if role == 'testrole':
       res['value']['test']['attrs']['invisible']=True
    return res
bool = field.boolean('Boolean')

_default { 'bool': False }


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