## 向导
向导通过动态表单来描述用户(或对话框)的交互会话。一个向导只是一个模型,扩展了类 `TransientModel` 而不是 [`Model`](https://www.odoo.com/documentation/9.0/reference/orm.html#openerp.models.Model "openerp.models.Model"). 这个类 `TransientModel` 继承自 [`Model`](https://www.odoo.com/documentation/9.0/reference/orm.html#openerp.models.Model "openerp.models.Model") 并重新利用其现有机制,具有以下特点:
* 向导记录并不是持久的,在一定时间后,它们会自动从数据库中删除。这就是为什么他们被称为 *transient*.
* 向导模型不需要显式访问权限:用户拥有向导记录的所有权限.
* 向导记录可能是指定期记录或向导记录通过many2one字段,但定期记录 *不能是* 查阅向导记录通过many2one字段.
我们要创建一个向导,允许用户为特定的会话创建参与者,或者让用户在一次会议上创建一个会话列表。
练习
定义向导
与*会议*模型many2one关系与伙伴关系模型一many2many创建向导模式。
添加新文件 `openacademy/wizard.py`:
*openacademy/__init__.py*
~~~ python
from . import controllers
from . import models
from . import partner
from . import wizard
~~~
*openacademy/wizard.py*
~~~ python
# -*- coding: utf-8 -*-
from openerp import models, fields, api
class Wizard(models.TransientModel):
_name = 'openacademy.wizard'
session_id = fields.Many2one('openacademy.session',
string="Session", required=True)
attendee_ids = fields.Many2many('res.partner', string="Attendees")
~~~