OpenERP attrs隐形不起作用

时间:2014-01-10 16:51:58

标签: openerp

如果用户不属于人力资源,我试图让一个组在视图中不可见...这是过滤组的多个条件的一部分,这是最基本的一个,这是在窗体视图上:

attrs="{'invisible':[('groups_id.category_id.name','=','Human Resource')]}"

然而,这会产生错误:

Uncaught Error: Unknown field groups_id.category_id.name

如果我使用

attrs="{'readonly':[('groups_id.category_id.name','=','Human Resource')]}"

该错误未发生但似乎没有做任何事情......

即使attrs="{'readonly':[('1','=','1')]}"似乎没有做任何事情。

如果我添加<group invisible="1"

它按预期工作。

为什么不隐形工作?此外,如果我在除了不可见之外的attrs中键入任何内容,它似乎解析XML而没有问题...

3 个答案:

答案 0 :(得分:4)

问题是客户评估了attrs,这意味着没有浏览记录,客户端无法解析groups_id.category_id ... Attrs只能在客户可用的字段上工作,因此请扩展模型并添加相关字段。将它放在视图上,其中invisible = 1,这样用户就不会看到它并在你的attrs上使用这个字段。

答案 1 :(得分:2)

据我所知,在attrs中,您只能通过OpenERP basic "domain"

域由Web客户端解析。这会强制您在视图事件中使用域中的所有字段(如果未显示),它们必须是不可见的字段。

域值必须是静态的。

attrs = "{'readonly': [('my_filed_must_be_in_view', '=', 'static_value')]}"

您不能使用复杂功能或服务器相关代码,范围仅限于视图。

答案 2 :(得分:0)

是的,我们不能在这里使用对象字段关系来获取ATTRS中的值虽然我们可以在DOMAIN中使用这种功能!