this is a transient.model.
def academic_program(self):
context = dict(self._context)
program_id = self.env['cms.academic.program'].search([('program_level', '=', context.get('default_program_level_id'))])
return {'domain': {'program_template_id': [('program_level', '=', program_id.id)]}}
program_template_id = fields.Many2one('cms.academic.program', 'Scheme of Study', default=academic_program)
ValueError: Invalid field 'domain' on model 'cms.academic.program'