跳转到主要内容

在模型中添加自定义字段

项目描述

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

项目详细信息


下载文件

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

源代码发行版

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

构建发行版

odoo_addon_base_custom_info-15.0.1.0.0.9-py3-none-any.whl (388.1 kB 查看哈希值)

上传时间: Python 3

由以下支持