字段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: ,非常感谢
-
不客气,很高兴对你有帮助。