对于管理员,经理,我希望显示每条记录,对于普通用户,我只想显示该特定用户创建的记录



如何根据登录用户筛选树视图的记录。对于管理员,经理,我希望显示每条记录,对于普通用户,我只想显示该特定用户创建的记录。

我尝试过下面的代码示例

对于经理uid=12

对于管理员uid=1

 <field name="domain">[('|',('create_uid','=',uid),('|',(uid,'=','1'),(uid,'=','12')))]</field>

上面的代码示例是抛出错误

"值错误: 无效的叶 ['|', ['create_uid', '=', 1], ['|',

[1, '=', '1'], [1, '=', '12']]]">

行级访问规则在 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 文件中。

一个域 它由 3 个元素组成,(field_in_your_model, operator, value) ,我不知道您是在使用已知模型还是您的定义,但是您遇到了该错误,因为uid它是odoo的保留字,而不是模型中的字段。满足您要求的最佳方法是为您的用户组制定规则,例如销售组

销售规则/用户:仅拥有文件:

['|',('user_id','=',user.id),('user_id','=',False)]

我希望这个答案能对你有所帮助。

最新更新