字段domain过滤权限问题,请各位大大看看
- 
@万叶言雨 在 字段domain过滤权限问题,请各位大大看看 中说: 是不是不能用等号呀,一个用户可能兼有多个权限组 你说的对,domain改成: user = fields.Many2one('res.users', domain=lambda self: [('groups_id', 'in', self.env.ref('权限组xmlid').ids)])你上面的错误应该是xmlid错了,xmlid必须是 模块名.xmlid,即使在本模块中定义的xmlid也要带上本模块的名字。另外,之所以这里要将domain定义在python文件的field上的原因是我们需要将xmlid解析为数据库id,在前端处理很麻烦,需要先eval这个 ref(xxxx)
- 
@digitalsatori 
 groups_id不需要加.id么。这个in是前面元素是否在后面元素列表里,我看后面只是单个权限组,前面groups_id是res_users模型的群组,应该是列表字段吧
- 
@万叶言雨 加上模块名报这个,找不到id: self._write(store_vals) File "E:\workdata\PycharmProjects\odoo-12\odoo\models.py", line 3457, in _write self._validate_fields(vals) File "E:\workdata\PycharmProjects\odoo-12\odoo\models.py", line 1112, in _validate_fields raise ValidationError("%s\n\n%s" % (_("Error while validating constraint"), tools.ustr(e))) odoo.tools.convert.ParseError: "constraint 检查错误 External ID not found in the system: business.entertainment.sheet.yz_group_bm None" while parsing file:/e:/workdata/pycharmprojects/odoo-12/odoo/myaddons/business_entertainment/views/business_view.xml:4, near <record id="view_tree_business" model="ir.ui.view">
- 
你的报错,是view里的错误啊。 business.entertainment.sheet.yz_group_bm这是什么?
- 
@万叶言雨 在 字段domain过滤权限问题,请各位大大看看 中说: @digitalsatori 
 groups_id不需要加.id么。这个in是前面元素是否在后面元素列表里,我看后面只是单个权限组,前面groups_id是res_users模型的群组,应该是列表字段吧不需要。的确,真正的语意是倒过来才对,但是左侧必须是对象上的字段,所以Odoo会做这个反转的逻辑操作的。 
- 
@digitalsatori 
 business.entertainment.sheet是模型_name,view里domain去掉了
- 
嗯,不过从你view里报的错就知道你的xmlid写得还是不对, 模块名.xmlidxxxxxxxx不是 “模型名.xmlidxxxxxxx"
- 
@digitalsatori 嗯嗯,可以了。刚看错了:disappointed_but_relieved_face: ,非常感谢 
- 
不客气,很高兴对你有帮助。 

