Odoo 对于管理员、经理,我希望显示每个记录,对于普通用户,我希望仅显示该特定用户创建的记录

Odoo 对于管理员、经理,我希望显示每个记录,对于普通用户,我希望仅显示该特定用户创建的记录,odoo,openerp-7,Odoo,Openerp 7,如何根据登录用户筛选树状图记录。对于管理员、经理,我希望显示每个记录,对于普通用户,我希望仅显示该特定用户创建的记录 下面是我尝试过的代码示例 对于管理器uid=12 对于管理员uid=1 上面的代码示例正在抛出错误 ValueError:无效的叶['|',['create_uid','=',1],'|',[1',=', “1'],[1'=”,“12']] 一个域它由3个元素组成,域在你的模型中,运算符,值,我不知道你是在使用一个已知的模型还是你的定义,但是你得到了这个错误,因为它是odoo的保

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

下面是我尝试过的代码示例

对于管理器uid=12

对于管理员uid=1

上面的代码示例正在抛出错误

ValueError:无效的叶['|',['create_uid','=',1],'|',[1',=', “1'],[1'=”,“12']]


一个域它由3个元素组成,域在你的模型中,运算符,值,我不知道你是在使用一个已知的模型还是你的定义,但是你得到了这个错误,因为它是odoo的保留字,而不是模型中的字段。 对于您的需求,最好的方法是为您的用户组制定规则,例如销售组:

销售/用户规则:仅限自己的文档:

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


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

行级访问规则在ir.rule模型中定义,可以通过向模块添加相应的xml文件来创建。该文件通常存储在模块目录的security/folder下

例如,我以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文件中添加此文件路径

<?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>