字段和小组件

字段构成数据库的模型。如果将模型描绘为表格或电子表格,则字段就是记录中存储数据的列(或行)。字段还定义了其存储的数据的类型。数据在 UI(用户界面) 上的显示方式和格式由小组件定义。

从技术角度看,Odoo有15种字段类型。您也可以在Studio的20种字段中进行选择,因为某些字段类型可以多次使用不同的默认小组件。

小技巧

新字段 只能添加至 窗体列表 视图。其他视图只能添加 现有字段 (即已在模型中定义好的字段)

简单字段

简单字段包含基本值,如文本、数字、文件等。

注解

非默认小组件(如可用)显示为以下项目符号。

文件 (char)

:guilable:`文本` 字段用于包含任何字符的短文本。填写该字段时显示一行文本。

  • :guilable:`标记`: 显示圈内值,类似于标记。该值不能在用户界面上编辑,但可以设置默认值。

  • 复制到剪贴板: 用户可以点击按钮复制值。

  • 电子邮件: 该值变为可点击的*电子邮件*链接。

  • 图片: 使用URL显示图片。该值不能手动编辑,但可以设置默认值。

    注解

    与直接选择:ref:Image field<studio/files/simplefields/Image> 不同,因为使用:guilable:文本`字段和 :guilabel:`图片 小组件时,图片不会保存在Odoo中。例如,如果想节省磁盘空间,该功能就很有用。

  • 电话: 该值变为可点击的 电话 链接。

    小技巧

    勾选 启用短信 ,可直接从该号码字段旁的图标用Odoo发送短信。

  • URL: 该值变为可点击的URL。

Example

具有不同小组件的文本字段示例

多行文本 (text)

:guilable:`多行文本` 字段用于包含任何类型字符的较长文本。填写该字段时,用户界面上显示两行文本。

  • 复制到剪贴板: 用户可以点击按钮复制值。

Example

具有不同小组件的多行文本字段示例

整数 (integer)

:guilable:`整数` 字段用于所有整数 (:dfn:`正数,负数,零, 等没有小数点的数字。

  • :guilable:`百分比饼图`: 显示百分比饼图值,通常为计算得出的值。该值无法在用户界面上编辑,但可以设置默认值。

  • 进度条: 显示百分比条旁的值,通常为计算得出的值。该字段无法手动编辑,但可以设置默认值。

  • Handle排序: 显示拖动手柄图标,用于在 List view 中手动排序记录。

Example

具有不同小组件的整数字段示例

小数 (float)

小数 字段用于所有小数 (正小数,负小数, 零, 需要小数点的数字)。

注解

小数在用户界面上显示为两位小数,保存在数据库中时精度更高。

  • 货币 :类似于使用:ref:Monetary field <studio/fields/simple-fields/monetary> 。建议使用后者,因为功能更多。

  • 百分比: 在数值后显示百分比符号。

  • :guilable:`百分比饼图`: 显示百分比饼图值,通常为计算得出的值。该字段无法手动编辑,但可以设置默认值。

  • 进度条: 显示百分比条旁的值,通常为计算得出的值。该字段无法手动编辑,但可以设置默认值。

  • 时间: 数值须为 小时:分钟 格式,最大分钟值为59。

Example

具有不同小组部件的小数字段示例

货币 (monetary)

货币 字段用于所有货币值。

注解

首次添加 :guilable:`货币` 字段时,如果模型上不存在 币种 字段,则会提示添加 :gullable:`币种` 字段。Odoo为您添加 :guilable:`币种` 字段。添加完成后,应再次添加 :guilable:`货币` 字段。

Example

货币字段及其币种字段示例

超文本标记语言 (html)

超文本标记语言 字段用于添加可使用Odoo HTML编辑器编辑的文本。

  • 多行文本: 禁用Odoo HTML编辑器,以便允许编辑原超文本标记语言。

Example

具有不同小组件的超文本标记语言字段示例

日期 (date)

日期 字段用于从日历选择日期。

  • 剩余天数 :当前日期距离所示选择日期的剩余天数(例如,5天)。

Example

具有不同小组件的日期字段示例

日期和时间 (datetime)

日期和时间 字段用于从日历选择日期,从钟表选择时间。如果未设置时间,则自动采用用户的当前时间。

  • 日期 :用于不在用户界面上显示的条件下记录时间。

  • 剩余天数 :显示当前日期距离所示选择日期的剩余天数(例如,5天)。

Example

具有不同小组件的日期和时间字段示例

复选框 (boolean)

复选框 字段用于值只能为是或否时,选中或取消选中复选框,以进行指示。

  • 按钮: 显示为单选按钮。该小组件可在不切换至编辑模式的情况下工作。

  • 切换: 显示为切换按钮。该小组件可在不切换至编辑模式的情况下工作。

Example

具有不同小组件的复选框字段示例

选择 (selection)

选择 字段用于用户从一组预定义值中选择一个值。

  • :guilable:`标记`: 显示圈内值,类似于标记。该值不能在用户界面上编辑,但可以设置默认值。

  • 多个标记: 在水平排列的矩形内同时显示所有可选值。

  • 优先级 :显示为星形符号而非数值,例如,可用于表示重要性或满意度。与选择:ref:Priority field <studio/fields/simple-fields/priority> 的效果相同,但后者已预定义了4个优先级值。

  • 单选: 同时显示所有可选值的单选按钮。

    小技巧

    在默认情况下,单选按钮垂直排列。勾选:guilabel:display horizontally,以切换显示方式。

Example

具有不同小组件的选择字段示例

优先级 (selection)

优先级 字段用于显示三星评级系统,用于指示重要性或满意度。字段类型为:ref:Selection field<studio/files/simple fields/Selection> ,默认选中 优先级 小组件,并预定义4个优先级值。因此, 标记:guilable:`多个标记`单选选择 小组件与:ref:` Selection<studio/files/simplefields/Selection>` 中所述效果相同。

小技巧

要通过添加或删除值来更改可用星的数量,点击 :guilable:`编辑值` 。请注意,第一个值等于0星(即未作选择),因此,三星评级系统具有4个值。

Example

优先级字段示例

文件 (binary)

文件 字段用于上传任何类型的文件,或 签署表单 (:guilabel:`电子签名`小组件)。

  • 图片 :用户可以上传图片文件,图片将显示在:ref:Form view <studio/views/general/form> 中。与使用:ref:Image field <studio/fields/simple-fields/image> 具有相同效果。

  • PDF查看器 : 用户可以上传PDF文件,上传后,可以在 表单视图 中查看该文件。

  • 签署 :用户可以对表单进行电子签名。与选择:ref:Sign field <studio/fields/simple-fields/sign> 具有相同效果。

Example

具有不同小组件的文件字段示例

图片 (binary)

图片 字段用于上传图片,并在:ref:Form view <studio/views/general/form> 中显示图片。字段类型为:ref:File field <studio/fields/simple-fields/file> ,默认选中 图片 小组件。因此, 文件PDF查看器签署 小组件与:ref:File <studio/fields/simple-fields/file> 中所述效果相同。

小技巧

要更改上传图片的显示大小,在 :guilable:`尺寸` 选项下选择 :guilale:`中`:guilalb:`大`

签署 (binary)

签署 字段用于对表单进行电子签名。字段类型为:ref:File field <studio/fields/simple-fields/file> ,默认选中 签署 小组件。因此, 文件图片PDF查看器 小组件与:ref:File <studio/fields/simple-fields/file> 中所述效果相同。

小技巧

要在用户须签名时为用户提供:guilable:自动`选项,选择一个可用的 :guilabel:`Auto complete with `字段(仅模型中的:ref:`Text <studio/fields/simple-fields/text>, Many2One 和:ref:Related Field <studio/fields/relational-fields/related-field> )。使用所选字段的数据自动生成签名。

关系字段

关系字段用于链接并显示另一模型中记录的数据。

注解

非默认小组件(如可用)显示为以下项目符号。

Many2One (many2one)

Many2One 字段用于将另一记录(来自另一模型)链接至正在编辑的记录。来自另一模型的记录名称将显示在正在编辑的记录中。

Example

销售订单 模型中, :guilable:`客户` 字段为指向 联系人 模型的 Many2One 字段,允许 多个 销售订单链接至 一个 联系人(客户)。

显示many2one关系的图表

小技巧

  • 要防止用户在链接的模型中创建新记录,勾选:guilable:禁用创建

  • 要防止用户在弹窗中打开记录,勾选 :guilable:`禁用打开`

  • 要帮助用户只选择正确的记录,点击 :guilable:`域` ,创建筛选器。

  • 标记 : 显示圈内值,类似于标记。该值不能在用户界面上编辑。

  • 单选: 同时显示所有可选值的单选按钮。

One2Many (one2many)

One2Many 字段用于显示当前模型中的记录和另一模型中的多个记录间的现有关系。

Example

您可以在 联系人 模型中添加 :guilable:`One2Many` 字段,以查看 一个 客户的 多个 销售订单。

显示one2many关系的图表

注解

要使用 One2Many 字段,两个模型须使用:ref:Many2One field <studio/fields/relational-fields/many2one> 链接。One2Many关系不独立存在:对现有Many2One关系进行反向搜索。

多行 (one2many)

多行 字段用于创建有多行和多列的表格(例如,销售订单中的多个产品行)。

小技巧

要修改列,点击 :guilable:`多行` 字段,然后点击 :gullable:`编辑列表视图` 。要编辑用户点击 :guilable:`添加明细` 时弹出的表单,改为点击 :gullable:`编辑表单视图`

Example

多行字段示例

多对多Many2Many (many2many)

Many2Many 字段用于将另一模型中的多个记录链接至当前模型中的多条记录。该多字段可以使用:guilabel:Disable creationDisable opening`和 :guilabel:`域 ,与:ref:Many2One fields <studio/fields/relational-fields/many2one> 相同。

Example

任务 模型中, :guilable:`受托人` 字段为指向 联系人 模型的 Many2Many 字段,允许向单个用户分配 多个 任务,以及将 多个 用户分配给同一任务。

显示many2many关系的图表
  • 多个复选框 : 用户可以通过多个复选框选择多个值。

  • :guilable:`标签`:用户可以选择多个圈内值,也称为*标签*,与选择:ref:Tags field<studio/files/relational fields/Tags> 具有相同效果。

标签 (many2many)

标签 字段用于显示另一模型中的多个圈内值,也称为*标签*。字段类型为:ref:Many2Many field<studio/files/relational fields/Many2Many> ,默认选中:guilable:标签`小组件。因此,:guilable:`复选框`和 :guilabel:`Many2Many 小组件与 Many2Many 中所述效果相同。

小技巧

要显示具有不同背景颜色的标记,勾选 :guilable:`使用颜色`

Example

标记字段示例

属性

  • 不可见 :用户无需在用户界面上查看字段时,勾选 不可见 ,以便根据具体情况只显示重要字段,有助于清理用户界面。

    Example

    联系人 模型的 表单 视图中, 职务 字段仅在选择 个人 时显示。因为该字段对 公司 联系人无用。

    注解

    不可见 属性也适用于Studio。要查看Studio中的隐藏字段,点击视图中的 查看 选项卡,并勾选 显示不可见内容

  • 要求 :如果用户在继续操作前须填写某字段,应勾选 要求

  • 只读 :如果不允许用户修改某字段,应勾选 只读

    注解

    您可以点击 有条件 并创建筛选器,以便选择仅对特定记录应用上述3个属性。

  • 标签标签 为用户界面中的字段名称。

    注解

    该字段与PostgreSQL数据库中使用的名称不同。要查看和更改后者,激活:ref:Developer mode <developer-mode> ,并编辑 技术名称

  • 帮助提示工具 :要解释某字段的目的,在 帮助提示工具 下编写说明。鼠标悬停在字段标签上时,工具提示框将显示说明。

  • 占位符 :要提供如何填写字段的示例,在 占位符 写下内容,内容以浅灰色显示,而非字段值。

  • 小组件 : 要更改某字段的默认外观或功能,选择可用小组件中的一个。

  • 默认值 :要在创建记录时为某字段添加默认值,使用:guilabel:Default value

  • Limit visibility to groups:要限制可以看到字段的用户,应选择一个用户访问组。