跳转到主要内容

在模型中添加自定义字段

项目描述

License: LGPL-3

基础自定义信息

此模块允许您在不大幅度修改数据库结构的情况下,将自定义信息附加到记录。

定义

本模块定义了几个您必须理解的概念。

模板

模板是一组记录应具有的属性集合。模板始终应用于特定模型,当您编辑该模型的记录时,您可以选择使用当前模板。

例如,此插件包含一个名为“智能合作伙伴”的演示模板,适用于模型res.partner,因此如果您编辑任何合作伙伴,您可以选择该模板并自动填充其属性。

属性

属性是字段的“名称”。模板可以具有任意数量的属性,当您将模板应用于记录时,它会自动填充所有属性,空(除非它们有默认值),准备分配值。

您可以设置属性为必需以强制其有值,尽管您应该记住,对于是/否属性,这意味着只能选择,而对于数值属性,零将被禁止。

您还可以为每个属性设置最小值最大值限制,但那些限制仅在数据类型为文本(以约束其长度)或数字时使用。要跳过此约束,只需设置一个小于最小值的最大值。

属性始终属于模板,也属于模型。

属性定义了数据类型(文本、数字、是/否…),如果类型是“选择”,则可以定义可用的选项

例如,“智能伙伴”模板有以下属性

  • 他的/她的老师的名字

  • 讨厌他/她那么聪明的有多少人

  • 所有学科的平均分

  • 他/她认为自己是世界上最有智慧的人吗?

  • 他/她有哪些缺点?

当您将此模板设置为任何合作伙伴时,您就可以用填充这些属性

类别

属性也可以属于一个类别,这允许您以逻辑方式对它们进行排序,并使进一步的开发更容易。

例如,website_sale_custom_info插件使用这些在您的在线商店中按类别排序和分离每个产品的技术数据表。

您不需要为每个属性都指定一个类别

选项

属性的类型是“选择”时,则定义可用的选项,所以必须是这些选项之一。

例如,“他/她有哪些缺点?”属性有一些选项

  • 喜欢垃圾食品

  • 需要电子游戏

  • 大眼镜

总是这些之一。

使用选项的递归模板

哦,亲爱的定制爱好者!选项可以用来定制自定义信息模板!

Customizations Everywhere

如果您为选项分配了一个附加模板,并在使用所有者表单时选择该选项,然后您可以按重新加载自定义信息模板,这样所有者就可以更新自己以包括所有涉及模板中的所有属性。如果不按按钮,则保存所有者记录时将执行重新加载。

Templateception

例如,如果您为智能伙伴的“他/她有哪些缺点?”属性选择“需要电子游戏”选项并按重新加载自定义信息模板,您将得到两个新的属性来填充:“最喜欢的电子游戏类型”和“最喜欢的电子游戏”。

当您为合作伙伴分配一个模板时,并且您得到了它应该拥有的属性,您仍然必须为每个属性设置一个

可以是不同类型(整数、受限选择、布尔值…),这取决于如何定义属性。然而,始终有一个字段,它是一个文本字符串,并自动转换为/从正确的类型。

我为什么需要这个?

想象一下,您有一些合作伙伴是外国的,并且对于这些合作伙伴,您需要一些额外的信息,而这些信息对于其他人来说是不需要的,您不想在合作伙伴模型中填充很多将大部分时间都是空的字段。

在这种情况下,您可以定义一个名为“外国合作伙伴”的模板,该模板将应用于res.partner对象,并定义一些预期它们应该拥有的属性

然后您可以将该模板分配给合作伙伴,然后您将自动获得一个子表,其中包含它应该拥有的所有属性,以及填充它们的的工具。

这是否适用于任何模型?

是的,也不是。

是的,因为这是一个基础模块,它提供了使任何模型都能工作的工具。

不,因为虽然提供了这些工具,但它们仅应用于res.partner模型。这是出于设计考虑,因为不同的模型可能有不同的需求,我们不希望依赖于每个可能的模型。

因此,如果您想将此应用于其他模型,您将需要开发一个小型附加组件,该组件依赖于此组件。如果您是开发者,请参考下面的开发部分。

安装

此模块作为其他模块的基础,这些模块在具体模型中实现此行为。

此模块是技术依赖项,需要与其他模块并行安装。

配置

要启用主自定义信息菜单

  1. 启用设置 > 常规设置 > 管理自定义信息

要启用合作伙伴的自定义信息选项卡

  1. 启用设置 > 常规设置 > 在合作伙伴中编辑自定义信息

用法

此模块定义了自定义信息模板,这些模板定义了给定记录所需的属性。

要定义模板,您需要

  • 转到自定义信息 > 模板

  • 创建一个。

  • 向其中添加一些属性

所有启用该模板的数据库记录将自动填写这些属性。

要管理属性,您需要

  • 转到自定义信息 > 属性

要管理属性类别,您需要

  • 转到自定义信息 > 类别

某些属性可以有多种选项可供选择,要管理它们

  • 转到自定义信息 > 选项

要管理它们的值,您需要

  • 转到自定义信息 > 值

Try me on Runbot

开发

要创建一个支持自定义信息的模块,只需依赖于此模块并从custom.info模型继承。

请参阅product_custom_info插件中的示例。

已知问题/路线图

  • 自定义属性无法在模板之间共享。

  • 所需属性目前仅在UI中设置,而不是在ORM本身中设置。

错误跟踪器

错误在GitHub问题上进行跟踪。如果遇到问题,请检查是否已报告您的问题。如果是您首先发现的,请通过提供详细和受欢迎的反馈来帮助我们解决问题。

鸣谢

贡献者

维护者

Odoo Community Association

此模块由OCA维护。

OCA,或Odoo社区协会,是一个非营利组织,其使命是支持Odoo功能的协作开发并推广其广泛使用。

要为此模块做出贡献,请访问https://odoo-community.org

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分布

此版本没有提供源代码分布文件。请参阅生成分布存档的教程

构建分布

由以下提供支持

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误记录StatusPageStatusPage状态页面