Skip to main content

在模型中添加自定义字段

项目描述

贝塔 许可证:LGPL-3 OCA/服务器工具 在 Weblate 上翻译我 试试我的 Runbot

此模块允许您将自定义信息附加到记录,而无需过多地更改数据库结构。

这个模块定义了几个你必须理解的概念。

模板

模板是记录应具有 的属性的集合。模板始终适用于给定模型,然后您可以在编辑该模型的记录时为您正在使用的模型选择当前模板。

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

特性

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

您可以根据需要将属性设置为强制它具有值,但您应该记住,对于是/否属性,这意味着只能选择 ,而对于数字属性,零将被禁止。

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

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

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

即,“智能合作伙伴”模板具有以下属性

  • 他/她的老师的名字

  • 讨厌他/她如此聪明的人的数量

  • 所有科目的平均成绩

  • 他/她相信他/她是地球上最聪明的人吗?

  • 他/她有什么弱点?

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

类别

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

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

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

选项

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

即,“他/她有什么弱点?” 属性有一些选择:

  • 喜欢吃垃圾食品

  • 需要电子游戏

  • 巨大的眼镜

将始终是其中之一。

价值

当您将模板分配给合作伙伴,然后获得它应该具有的属性时,您仍然需要为每个属性设置一个

可以是不同的类型(整数、约束选择、布尔值……),具体取决于属性的定义方式。但是,始终存在字段,即文本字符串,并自动转换为/从正确的类型转换。

为什么我需要这个?

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

在这种情况下,您可以定义一个名为“Foreign partners”的模板,该模板将应用于res.partner对象,并定义这些对象应具有的一些属性

然后,您可以将该模板分配给合作伙伴,然后您将自动获得它应具有的所有属性的子表,并使用工具来正确填充它们的

这适用于任何模型吗?

是和不是。

是的,因为这是一个基本模块,它提供了使该工具适用于任何模型的工具。

不,因为虽然提供了工具,但它们仅适用于 res.partner模型。这是设计使然,因为不同的模型可能有不同的需求,我们不想依赖每一个可能的模型。

所以,如果你想把它应用到其他模型上,你必须开发一个依赖于这个模型的附加插件。如果您是开发人员,请参阅下面的开发部分。

目录

<nav class="本地内容" id="contents"> </nav>

安装

该模块用作在具体模型中实现此行为的其他模块的基础。

该模块是一个技术依赖项,将与其他模块并行安装。

配置

要启用主自定义信息菜单:

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

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

  1. 启用Settings > General Settings > Edit custom information in partners

用法

该模块定义了自定义信息模板,这些模板定义了给定记录的预期属性。

要定义模板,您需要:

  • 转到自定义信息 > 模板

  • 创建一个。

  • 向它添加一些属性

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

要管理属性,您需要:

  • 转到自定义信息 > 属性

要管理属性类别,您需要:

  • 转到自定义信息 > 类别

一些属性可以有许多选项可供选择,以管理它们:

  • 转到自定义信息 > 选项

要管理他们的价值观,您需要:

  • 转到自定义信息 > 值

发展

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

请参阅product_custom_info插件中的示例。

已知问题/路线图

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

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

  • 使用选项支持递归模板

    <图> 定制无处不在 </图>

    如果您为某个选项分配了一个附加模板,并且在使用所有者表单时选择了该选项,则可以按重新加载自定义信息模板以使所有者自行更新以包含所有相关模板中的所有属性。如果您不按该按钮,无论如何都会在保存所有者记录时执行重新加载。

    <图> 模板接收 </图>

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

错误追踪器

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

不要就技术问题的支持或帮助直接联系贡献者。

学分

作者

  • 技术

贡献者

维护者

该模块由 OCA 维护。

Odoo 社区协会

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

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

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

项目详情


下载文件

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

内置分布

odoo13_addon_base_custom_info-13.0.1.0.1-py3-none-any.whl (374.0 kB 查看哈希

已上传 py3