【问题标题】:Rules For Many2many in ODOO 12ODOO 12 中的 Many2many 规则
【发布时间】:2019-04-26 09:28:05
【问题描述】:

我有一个上级部门,我有几个子部门,有些员工组织在他的部门下 所以我在 res.user 模型中创建了一个 Many2many 字段来调用部门。

class HrDepartment(models.Model):
    _inherit = 'res.users'

    dep_ids = fields.Many2many('hr.department', string='Department')

我为此制定了一个规则,这样当我在这个用户中选择了一个部门时,用户看不到这些部门下的员工

 <record model="ir.rule" id="employee_center_multi_department">
       <field name="name">Employee Multi Department</field>
       <field name="model_id" ref="model_hr_employee" />
       <field name="groups" eval="[(4, ref('charity_center_groups.group_manager_center_department'))]" />
       <field name="global" eval="True" />
      <field name="domain_force">[('department_id.parent_id.id','=',[user.dep_ids.id])]</field>   
    </record>   

当我选择一个部门时,它会完美地显示员工,但是当我选择多个部门时,它会显示错误

ValueError: <class 'ValueError'>: "Expected singleton: hr.department(3, 4)" while evaluating
"[('department_id.parent_id.id','=',[user.dep_ids.id])]"  

【问题讨论】:

    标签: xml security rules odoo-12


    【解决方案1】:

    我找到了解决办法

    需要在many2many字段中放一个循环,

    domain_force 完美运行

     <field name="domain_force">['|',('department_id.parent_id.id','in',[x.id for x in user.dep_ids]),('id','in',[x.id for x in user.dep_ids])]</field> 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多