Example of class: .. code:: python class MyWizard(models.TransientModel): _name = 'my.wizard' _inherit = ['multi.step.wizard.mixin'] project_id = fields.Many2one( comodel_name='project.project', name="Project", required=True, ondelete='cascade', default=lambda self: self._default_project_id(), ) name = fields.Char() field1 = fields.Char() field2 = fields.Char() field3 = fields.Char() @api.model def _selection_state(self): return [ ('start', 'Start'), ('configure', 'Configure'), ('custom', 'Customize'), ('final', 'Final'), ] @api.model def _default_project_id(self): return self.env.context.get('active_id') def state_exit_start(self): self.state = 'configure' def state_exit_configure(self): self.state = 'custom' def state_exit_custom(self): self.state = 'final' Example of view (note the mode, must be primary): .. code:: xml my.wizard.form my.wizard primary

The project is now configured.

My Wizard my.wizard form new form