对于管理员,经理我想显示每条记录,对于普通用户我只想显示该特定用户创建的记录
For Admin, Manager i want show every record , for normal user I want show records created by that particular user only
如何根据登录用户过滤树视图的记录。对于管理员、经理,我想显示每条记录,对于普通用户,我只想显示该特定用户创建的记录。
下面是我试过的代码示例
对于经理 uid=12
对于管理员 uid=1
<field name="domain">[('|',('create_uid','=',uid),('|',(uid,'=','1'),(uid,'=','12')))]</field>
以上代码示例抛出错误
"ValueError: Invalid leaf ['|', ['create_uid', '=', 1], ['|', [1, '=',
'1'], [1, '=', '12']]]"
一个由 3 个元素组成的域,(field_in_your_model, operator, value)
,我不知道您是在使用已知模型还是您的定义,但您遇到了该错误,因为 uid 它是odoo的保留字,不是模型中的字段。
满足您的要求的最佳方法是为您的用户组制定规则,例如 sale groups:
销售/用户的规则:仅限自己的文件:
['|',('user_id','=',user.id),('user_id','=',False)]
希望这个回答能对您有所帮助。
行级访问规则在 ir.rule 模型中定义,可以通过向模块添加相应的 xml 文件来创建。该文件通常存储在模块目录中的 security/ 文件夹下。
例如我以user.purchase.records
为模型
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record id="user_purchase_record_rule" model="ir.rule">
<field name="name">Records created by current user only</field>
<field name="model_id" ref="model_user_purchase_records"/>
<field name="domain_force">[('create_uid','=',user.id)]</field>
<field name="groups" eval="[(4,ref('base.group_user'))]"/>
</record>
</data>
</odoo>
最后将此文件路径添加到您的 manifest.py 文件中。
如何根据登录用户过滤树视图的记录。对于管理员、经理,我想显示每条记录,对于普通用户,我只想显示该特定用户创建的记录。
下面是我试过的代码示例
对于经理 uid=12
对于管理员 uid=1
<field name="domain">[('|',('create_uid','=',uid),('|',(uid,'=','1'),(uid,'=','12')))]</field>
以上代码示例抛出错误
"ValueError: Invalid leaf ['|', ['create_uid', '=', 1], ['|', [1, '=', '1'], [1, '=', '12']]]"
一个由 3 个元素组成的域,(field_in_your_model, operator, value)
,我不知道您是在使用已知模型还是您的定义,但您遇到了该错误,因为 uid 它是odoo的保留字,不是模型中的字段。
满足您的要求的最佳方法是为您的用户组制定规则,例如 sale groups:
销售/用户的规则:仅限自己的文件:
['|',('user_id','=',user.id),('user_id','=',False)]
希望这个回答能对您有所帮助。
行级访问规则在 ir.rule 模型中定义,可以通过向模块添加相应的 xml 文件来创建。该文件通常存储在模块目录中的 security/ 文件夹下。
例如我以user.purchase.records
为模型
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record id="user_purchase_record_rule" model="ir.rule">
<field name="name">Records created by current user only</field>
<field name="model_id" ref="model_user_purchase_records"/>
<field name="domain_force">[('create_uid','=',user.id)]</field>
<field name="groups" eval="[(4,ref('base.group_user'))]"/>
</record>
</data>
</odoo>
最后将此文件路径添加到您的 manifest.py 文件中。