如何记录规则以基于用户与Many2Many的登录关系



我正在努力发展我的知识。然后我做一个个人项目名称"我的招聘"。 我继承了模型"hr.applicant"并添加了新的字段名称"x_place"。 我想限制用户只能看到用户是Many2Many名称"my.recruitment.place"成员的记录。

我正在使用以下内容创建记录规则

它在我的测试 ir.rule 中工作正常

['|',('x_place','in',[1,2,3,4]),('x_place','=',False)]

但我期待结果

xxx = self.env['my.recruitment.place'].search([('res_users_id','=',user.id)])
['|',('x_place','in',[xxx]),('x_place','=',False)]

这是我的班级:

class MYRecruitment(models.Model):
_inherit = ['hr.applicant']
x_place = fields.Many2one('my.recruitment.place', "Place")

class MyRecruitmentPlace(models.Model):
_name = "my.recruitment.place"
_description = "Place of Recruitment"
_sql_constraints = [
('name_uniq', 'unique (name)', 'The name of the place of Recruitment must be unique!')
]
name = fields.Char("Place", required=True, translate=True)
user_ids = fields.Many2many('res.users', string="Owners")
sequence = fields.Integer("Sequence", default=1, help="Gives the sequence order when displaying a list of place.")  

试试这个:

['|',('x_place','in',xxx.ids),('x_place','=',False)]

希望对您有所帮助。

模型:

@api.multi
def _place_get(self):
return self.search([])

规则定义(域筛选器(:

['|',('user_id', '=', user.id),('x_place','in',[_place_get.ids])]   

错误:

ValueError: <class 'NameError'>: "name '_place_get' is not defined" while evaluating
"['|',('user_id', '=', user.id),('x_place','in',[_place_get.ids])]"

最新更新