基本字段类型

来自Odoo大V社-odoo中文开发手册
7017511讨论 | 贡献2017年5月4日 (四) 05:47的版本

(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索

我们现在有一个Stage模型,我们将扩展它添加一些额外的字段。 我们应该编辑todo_ui / models / todo_model.py文件并添加额外的字段定义,使它看起来像这样:

class Stage(models.Model):
    _name = 'todo.task.stage'
    _description = 'To-do Stage'
    _order = 'sequence,name'
    # String fields:
    name = fields.Char('Name', 40)
    desc = fields.Text('Description')
    state = fields.Selection(
        [('draft','New'), ('open','Started'),
       ('done','Closed')],'State')
    docs = fields.Html('Documentation')
    # Numeric fields:
    sequence = fields.Integer('Sequence')
    perc_complete = fields.Float('% Complete', (3, 2))
    # Date fields:
    date_effective = fields.Date('Effective Date')
    date_changed = fields.Datetime('Last Changed')
    # Other fields:
    fold = fields.Boolean('Folded?')
    image = fields.Binary('Image')

这里,我们有一个Odoo中可用的非关系字段类型的样本,每个字段都有期望的位置参数。

在大多数情况下,第一个参数是字段标题,对应于字符串字段参数; 这用作用户界面标签的默认文本。 它是可选的,如果未提供,将从字段名称自动生成标题。

对于日期字段名称,有使用日期作为前缀的约定。 例如,我们应该使用date_effective字段而不是effective_date。 类似的约定也适用于其他字段,如amount_,price_或qty_。

这些是每个字段类型所期望的标准位置参数:

 Char 需要第二个可选的参数大小,以获取最大文本大小。 建议不要使用它,除非有需要它的业务需求,例如固定长度的社会安全号码 
 Text 不同于Char,因为它可以保存多行文本内容,但期望相同的参数
 Selection  是一个下拉选择列表。 第一个参数是可选选项的列表,第二个参数是字符串标题。 选择项是针对存储在数据库中的值和相应的用户界面描述的
('值','标题')元组的 列表。 当扩展继承时,selection_add参数可用于将新项目附加到现有选择列表。
 Html 存储为文本字段,但在用户界面上具有特定的处理,用于HTML内容呈现。 出于安全原因,默认情况下会对其进行清理,但可以覆盖此行为
 Integer 只需要字段标题的字符串参数。 
 Float 有第二个可选参数,一个带有字段精度的(x,y)元组:x是浮点数的总位数,y是小数点位数
 Date and Datetime 只需要字符串文本作为位置参数。 由于历史原因,ORM以字符串格式处理它们的值。 辅助函数应该用于将它们转换为实际的日期对象。
 此外,datetime值以UTC时间存储在数据库中,但使用用户的时区首选项显示为本地时间。 这在第6章“视图 - 设计用户界面”中有更详细的讨论。
 Boolean 保存True或False值,如您所料,并且只有一个字符串文本的位置参数。
 Binary 存储文件状二进制数据,并且只需要字符串参数。 它们可以使用base64编码字符串由Python代码处理。

除了这些,我们还有关系字段,将在本章后面介绍。 但现在,还有更多要了解这些字段类型及其属性。

上一节:创建字段
下一节:公共字段属性