Openerp onchange方法更新虚拟字段的值

Openerp onchange方法更新虚拟字段的值,openerp,odoo,Openerp,Odoo,我正在开发OdooV8,并试图修改用户表单中的访问权限视图。我想修改表单,这样当我为每个模块的类别选择一个角色时,它将调用onchange方法并更新技术设置、可用性和其他下面的复选框。当前所做的更改仅在我保存表单后显示。但我想让它在保存到数据库之前进行动态更新,以便管理员验证。但是,当我从onchange方法返回dict时,系统似乎不知道字段的存在,例如虚拟字段,如在组1、组2中等等。是否还有其他方法可以这样做 @api.v7 def check_acl(self, cr, uid, ids,

我正在开发OdooV8,并试图修改用户表单中的访问权限视图。我想修改表单,这样当我为每个模块的类别选择一个角色时,它将调用onchange方法并更新技术设置、可用性和其他下面的复选框。当前所做的更改仅在我保存表单后显示。但我想让它在保存到数据库之前进行动态更新,以便管理员验证。但是,当我从onchange方法返回dict时,系统似乎不知道字段的存在,例如虚拟字段,如在组1、组2中等等。是否还有其他方法可以这样做

@api.v7
def check_acl(self, cr, uid, ids, my_field, context=None):
  return {'value': {'in_group_1': True}} 

您可以通过此功能检查是否为管理员

def check_userself,uid=None: 如果uid为无: uid=request.uid is_admin=request.registry['res.users'].\u is_adminrequest.cr,uid[uid] 如果不是,则是_admin: 引发openerp.exceptions.AccessError只有管理员才能上载模块 并使用如下参数调用此函数:

uid = request.session.authenticate(request.db, login, password) 
self.check_user(uid)
您可以在onchange中使用此函数

@api.v7
def check_acl(self, cr, uid, ids, my_field, context=None):
   if self.check_user(uid):
       return {'value': {'in_group_1': True}}