OpenERP属性不可见不工作

OpenERP属性不可见不工作,openerp,Openerp,如果用户不属于人力资源部,我会试图使一个组在视图中不可见。。。这是筛选组的多个条件的一部分,这是最基本的条件,在表单视图中: attrs="{'invisible':[('groups_id.category_id.name','=','Human Resource')]}" 但是,这会引发一个错误: Uncaught Error: Unknown field groups_id.category_id.name 如果我使用 attrs="{'readonly':[('groups_id.c

如果用户不属于人力资源部,我会试图使一个组在视图中不可见。。。这是筛选组的多个条件的一部分,这是最基本的条件,在表单视图中:

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')]}”
似乎也不起任何作用


如果我添加
,问题是attr由客户端计算,这意味着没有浏览记录,客户端无法解析组\u id.类别\u id。。。

ATTR只能处理客户端可用的字段,因此扩展模型并添加相关字段。将此字段放在不可见=1的视图中,以便用户看不到它,并在属性上使用此字段

问题在于属性由客户端评估,这意味着没有浏览记录,客户端无法解析组id。类别id。。。
ATTR只能处理客户端可用的字段,因此扩展模型并添加相关字段。将此字段放在不可见=1的视图中,以便用户看不到它,并在属性上使用此字段

据我所知,在
attrs
中,您只能通过OpenERP basic
“域”

该域由Web客户端解析。这迫使您在视图事件中使用域中的所有字段。如果未显示,则这些字段必须是不可见字段

域值必须是静态的

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

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

据我所知,在
attrs
中,只能通过openrp basic
“domain”

该域由Web客户端解析。这迫使您在视图事件中使用域中的所有字段。如果未显示,则这些字段必须是不可见字段

域值必须是静态的

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

您不能使用复杂函数或与服务器相关的代码。范围仅限于视图。

是的,我们不能在此处使用对象字段关系来获取属性中的值,尽管我们可以在域中使用此类功能

是的,我们不能在这里使用对象字段关系来获取属性中的值,尽管我们可以在域中使用这种功能

我不太清楚你的意思。。。attrs位于XML上,因此应该在服务器端对其进行解析,对吗?我不太确定您描述的解决方案是什么样子的,但是所有的逻辑都是由属于某个组的用户绑定的,只有当他属于某个组时,某些字段才应该可见,但是对于他自己的记录,他可以访问所有字段。XML存储在服务器端是的,在更新模块时解析,但属性由客户端计算,并且是元组列表(字段、运算符、值)的常规OpenERP形式,例如('my_field'、'='、'a')或('my_boolean_field'、'='、True)。您需要编写一些python代码来更改或扩展正在显示的模型,以添加一个字段来解析组“id.category”id.name,然后将其作为一个字段放到视图中,然后您的attrs域将是('my_new_field','=','Human Resource')。确定。谢谢你的回复,阿德里安。似乎我需要编写一些python代码来实现这一点,这个项目的目标是尽可能不编写代码,并尽可能多地使用OpenERP的默认配置方式。如果我在我的模型中添加一个带有部门名称的字段,我将尝试向我的PM销售该解决方案。嗯,如果你真的不想编写一些代码。。。(1) 通过菜单创建一个新组并将用户放入其中,然后(2)从设置->用户界面->视图-找到所需的视图并编辑XML,使其显示groups=“my\u new\u group”。明白了,当你下次更新模块时,XML不会改变,除非你先手动删除视图记录。我不太清楚你的意思。。。attrs位于XML上,因此应该在服务器端对其进行解析,对吗?我不太确定您描述的解决方案是什么样子的,但是所有的逻辑都是由属于某个组的用户绑定的,只有当他属于某个组时,某些字段才应该可见,但是对于他自己的记录,他可以访问所有字段。XML存储在服务器端是的,在更新模块时解析,但属性由客户端计算,并且是元组列表(字段、运算符、值)的常规OpenERP形式,例如('my_field'、'='、'a')或('my_boolean_field'、'='、True)。您需要编写一些python代码来更改或扩展正在显示的模型,以添加一个字段来解析组“id.category”id.name,然后将其作为一个字段放到视图中,然后您的attrs域将是('my_new_field','=','Human Resource')。确定。谢谢你的回复,阿德里安。似乎我需要编写一些python代码来实现这一点,这个项目的目标是尽可能不编写代码,并尽可能多地使用OpenERP的默认配置方式。如果我在我的模型中添加一个带有部门名称的字段,我将尝试向我的PM销售该解决方案。嗯,如果你真的不想编写一些代码。。。(1) 通过菜单创建一个新组并将用户放入其中,然后(2)从设置->用户界面->视图-找到所需的视图并编辑XML,使其显示groups=“my\u new\u group”。明白了,当你下次更新模块时,XML不会改变,除非你先手动删除视图记录。我从这篇文章中得到了这个想法,所以这不起作用?我从这篇文章中得到了这个想法,所以这不起作用?