如何在 ODOO 中动态更改 Many2one 字段的域
How to dynamic change the domain of a Many2one field in ODOO
每次dul的值变化时,我想动态改变many2one字段的域#dul是布尔值
在第一种情况下 domain="[('parent_id', '!=', False), ('parent_id', '=', imeReona)]"
,
在另一种情况下 domain="[('parent_id', '!=', False)]"
我试过了:
my_many2one_field = fields.Many2one(..., domain=lambda self: self.env['ir.config_parameter'].sudo().get_param('domen_mm2o'))
@api.onchange('dul')
def _onchange_dul(self):
if (self.dul == True):
res = "[('parent_id','!=',False),('parent_id','=',imeReona)]"
else:
res = "[('parent_id','!=',False)]"
self.env['ir.config_parameter'].sudo().set_param('domen_mm2o',res)
如果我不够清楚或者没有很好地表述问题,请告诉我
@api.onchange('partner_id')
def apply_domain_customer(self):
vehicles = self.env['fleet.vehicle'].search([('driver_id', '=',
self.partner_id.id)]).ids
return {
'domain': {
'vehicle': [('id', 'in', vehicles)]
}}
我修改了代码。
从 my_many2one_field
我删除了 , domain=lambda self: self.env['ir.config_parameter'].sudo().get_param('domen_mm2o')
并更新
@api.onchange('dul')
def _onchange_dul(self):
if (self.dul == True):
res = "[('parent_id','!=',False),('parent_id','=',imeReona)]"
else:
res = "[('parent_id','!=',False)]"
self.env['ir.config_parameter'].sudo().set_param('domen_mm2o',res)
添加了以下代码
return{
'domain': {'my_many2one_field': self.env['ir.config_parameter'].sudo().get_param('domen_mm2o')}}
每次dul的值变化时,我想动态改变many2one字段的域#dul是布尔值
在第一种情况下 domain="[('parent_id', '!=', False), ('parent_id', '=', imeReona)]"
,
在另一种情况下 domain="[('parent_id', '!=', False)]"
我试过了:
my_many2one_field = fields.Many2one(..., domain=lambda self: self.env['ir.config_parameter'].sudo().get_param('domen_mm2o'))
@api.onchange('dul')
def _onchange_dul(self):
if (self.dul == True):
res = "[('parent_id','!=',False),('parent_id','=',imeReona)]"
else:
res = "[('parent_id','!=',False)]"
self.env['ir.config_parameter'].sudo().set_param('domen_mm2o',res)
如果我不够清楚或者没有很好地表述问题,请告诉我
@api.onchange('partner_id')
def apply_domain_customer(self):
vehicles = self.env['fleet.vehicle'].search([('driver_id', '=',
self.partner_id.id)]).ids
return {
'domain': {
'vehicle': [('id', 'in', vehicles)]
}}
我修改了代码。
从 my_many2one_field
我删除了 , domain=lambda self: self.env['ir.config_parameter'].sudo().get_param('domen_mm2o')
并更新
@api.onchange('dul')
def _onchange_dul(self):
if (self.dul == True):
res = "[('parent_id','!=',False),('parent_id','=',imeReona)]"
else:
res = "[('parent_id','!=',False)]"
self.env['ir.config_parameter'].sudo().set_param('domen_mm2o',res)
添加了以下代码
return{
'domain': {'my_many2one_field': self.env['ir.config_parameter'].sudo().get_param('domen_mm2o')}}