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。我怎么能这样做?
答案 0 :(得分:1)
首先,您必须将默认值添加到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']