基于其他字段的计算字段默认值
Computed field default based on other field
preload = fields.Boolean(related='project_id.preload', string='Preload Templates')
part_template_ids = fields.Many2many(
'project.part.template', string='Part Templates', required=True,
default='_default_part_template_ids')
def _default_part_template_ids(self):
domain = [('case_default', '=', True)]
return self.env['project.part.template'].search(domain)
我的目标是根据预加载字段更改 part_template_ids 默认值。如果 preload 为 True,则 part_template_ids default='_default_part_template_ids' 如果 preload 为 false,则 part_template_ids 的默认值也为 false。我该怎么做?
首先你必须给preload
添加一个默认值
preload = fields.Boolean(
related='project_id.preload', string='Preload Templates',
default=False)
这将触发 onchange 事件,即使是在初始创建时也是如此。您可以使用它来填充其他字段的默认值。
@api.onchange('preload')
@api.multi
def onchange_preload(self):
""" Preloads part templates if set to true"""
if self.preload:
domain = [('case_default', '=', True)]
self.part_template_ids = self.env['project.part.template'].search(domain)
else:
self.part_template_ids = self.env['project.part.template']
preload = fields.Boolean(related='project_id.preload', string='Preload Templates')
part_template_ids = fields.Many2many(
'project.part.template', string='Part Templates', required=True,
default='_default_part_template_ids')
def _default_part_template_ids(self):
domain = [('case_default', '=', True)]
return self.env['project.part.template'].search(domain)
我的目标是根据预加载字段更改 part_template_ids 默认值。如果 preload 为 True,则 part_template_ids default='_default_part_template_ids' 如果 preload 为 false,则 part_template_ids 的默认值也为 false。我该怎么做?
首先你必须给preload
preload = fields.Boolean(
related='project_id.preload', string='Preload Templates',
default=False)
这将触发 onchange 事件,即使是在初始创建时也是如此。您可以使用它来填充其他字段的默认值。
@api.onchange('preload')
@api.multi
def onchange_preload(self):
""" Preloads part templates if set to true"""
if self.preload:
domain = [('case_default', '=', True)]
self.part_template_ids = self.env['project.part.template'].search(domain)
else:
self.part_template_ids = self.env['project.part.template']