### 模型字段
字段被用來定義模型可以存儲和在哪里。字段被定義為模型類的屬性:
~~~Python
from openerp import models, fields
class LessMinimalModel(models.Model):
_name = 'test.model2'
name = fields.Char()
~~~
#### 公共屬性
這很像模型本身,它的字段可以配置,通過配置屬性作為參數:
~~~ python
name = field.Char(required=True)
~~~
在所有領域都有一些屬性,這里是最常見的:
`string` (`unicode`, default: field's name)
用戶界面領域的標簽 (用戶可見).
`required` (`bool`, default: `False`)
如果 `True`, 字段不能是空的,它必須有一個默認值,或者在創建記錄時給定一個值.
`help` (`unicode`, default: `''`)
長期形成的,提供了一個幫助提示在UI的用戶.
`index` (`bool`, default: `False`)
Odoo 創建一個請求 [database index](http://use-the-index-luke.com/sql/preface) 在列上
#### 簡單字段
有2個廣泛的字段: "simple" 字段這是直接存儲在模型表中的原子值 "relational" 字段鏈接記錄(同一模型或不同型號)。
簡單字段的例子 [`Boolean`](https://www.odoo.com/documentation/9.0/reference/orm.html#openerp.fields.Boolean "openerp.fields.Boolean"), [`Date`](https://www.odoo.com/documentation/9.0/reference/orm.html#openerp.fields.Date "openerp.fields.Date"), [`Char`](https://www.odoo.com/documentation/9.0/reference/orm.html#openerp.fields.Char "openerp.fields.Char").
#### Reserved fields
Odoo創建所有模型中的幾個字段[1](https://www.odoo.com/documentation/9.0/howtos/backend.html#autofields). 這些字段是由系統管理和不應該寫的。他們可以閱讀,如果有用的或必要的:
`id` (`Id`)
在模型中記錄的唯一標識
`create_date` ([`Datetime`](https://www.odoo.com/documentation/9.0/reference/orm.html#openerp.fields.Datetime "openerp.fields.Datetime"))
記錄的創建日期
`create_uid` ([`Many2one`](https://www.odoo.com/documentation/9.0/reference/orm.html#openerp.fields.Many2one "openerp.fields.Many2one"))
創造記錄的用戶
`write_date` ([`Datetime`](https://www.odoo.com/documentation/9.0/reference/orm.html#openerp.fields.Datetime "openerp.fields.Datetime"))
最后修改日期
`write_uid` ([`Many2one`](https://www.odoo.com/documentation/9.0/reference/orm.html#openerp.fields.Many2one "openerp.fields.Many2one"))
用戶誰最后修改記錄
#### 特殊字段
默認情況下,Odoo還需要一個名稱字段用來所有模型的各種顯示和搜索行為。用于這些目的的字段可以被設置 [`_rec_name`](https://www.odoo.com/documentation/9.0/reference/orm.html#openerp.models.Model._rec_name "openerp.models.Model._rec_name").
>練習
定義一個模型
定義一個新的數據模型 *Course* 在 *openacademy* 模塊。一個課程有一個標題和一個描述。課程必須有一個標題。
編輯文件 `openacademy/models.py` 包含 *Course* 類.
*openacademy/models.py*
~~~ python
from openerp import models, fields, api
class Course(models.Model):
_name = 'openacademy.course'
name = fields.Char(string="Title", required=True)
description = fields.Text()
~~~