跳转到主要内容

在模型中添加自定义字段

项目描述

Beta License: LGPL-3 OCA/server-tools Translate me on Weblate Try me on Runboat

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

此模块定义了您必须理解的一些概念。

模板

模板 是记录应该具有的一组 属性模板 总是应用于特定的模型,当您编辑该模型的记录时,您可以从中选择当前模型的模板。

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

属性

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

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

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

属性始终属于一个模板,因此也属于一个模型。

属性定义了数据类型(文本、数字、是/否等),当类型为“选择”时,您可以定义可用的选项

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

  • 他/她的老师姓名

  • 有多少人因为他/她太聪明而讨厌他/她

  • 所有科目的平均分数

  • 他/她认为自己是最聪明的人吗?

  • 他/她有哪些弱点?

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

分类

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

例如,website_sale_custom_info插件使用这些来按分类显示您在线商店中每个产品的技术数据表。

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

选项

属性的类型为“选择”时,您将定义可用的选项,因此必须是这些选项之一。

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

  • 喜欢垃圾食品

  • 需要玩电子游戏

  • 大眼镜

总是这些之一。

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

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

我为什么需要这个?

想象一下,您有一些外国合作伙伴,并且对于这些合作伙伴,您需要一些额外信息,这些信息对于其他人不是必需的,您不想在合作伙伴模型中填充许多大多数时候都会为空的字段。

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

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

这适用于任何模型吗?

是和否。

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

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

因此,如果您想将其应用于其他模型,您将不得不开发一个额外的附加模块,该模块依赖于这个模块。如果您是开发者,请参阅下面的开发部分。

目录

安装

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

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

配置

启用主自定义信息菜单

  1. 启用设置 > 一般设置 > 管理自定义信息

启用合作伙伴自定义信息标签页

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

使用

本模块定义了自定义信息模板,用于指定特定记录所需属性。

要定义模板,您需要

  • 进入自定义信息 > 模板

  • 创建一个。

  • 向其中添加一些属性

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

要管理属性,您需要

  • 进入自定义信息 > 属性

要管理属性类别,您需要

  • 进入自定义信息 > 类别

某些属性可以有多个选项进行选择,要管理它们

  • 进入自定义信息 > 选项

要管理它们的值,您需要

  • 进入自定义信息 > 值

开发

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

请参考product_custom_info插件中的示例。

已知问题/路线图

  • 自定义属性不能在模板之间共享。

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

  • 支持使用选项进行递归模板

    Customizations Everywhere

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

    Templateception

    例如,如果您为智能合作伙伴的属性“他/她有什么弱点?”选择选项“需要视频游戏”,并按下重新加载自定义信息模板,您将得到两个新的属性需要填写:“最喜欢的视频游戏类型”和“最喜欢的视频游戏”。

错误跟踪器

错误在GitHub Issues上追踪。如果遇到问题,请检查是否已报告您的问题。如果是您首先发现的,请提供详细且受欢迎的反馈以帮助我们解决问题。

请不要直接联系贡献者以获取支持或帮助解决技术问题。

致谢

作者

  • Tecnativa

贡献者

维护者

此模块由OCA维护。

Odoo Community Association

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

此模块是GitHub上的OCA/server-tools项目的一部分。

欢迎您贡献。要了解如何贡献,请访问https://odoo-community.org/page/Contribute

项目详细信息


下载文件

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

源分发

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

构建分发

由以下支持