跳转到主要内容

在模型中添加自定义字段

项目描述

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

项目详细信息


下载文件

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

源代码发行版

此版本没有可用的源代码发行版文件。请参阅生成发行版存档的教程

构建发行版

odoo14_addon_base_custom_info-14.0.1.0.3-py3-none-any.whl (399.8 kB 查看哈希值)

上传时间 Python 3

支持者