跳转到主要内容

在模型中添加自定义字段

项目描述

License: LGPL-3

基本自定义信息

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

定义

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

模板

模板 是一个记录应该具有的 属性 集合。 模板 总是应用于给定的模型,然后您可以在编辑模型记录时,从当前模板中选择用于您所使用的模型的模板。

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

属性

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

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

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

属性 总是属于模板,因此也属于模型。

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

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

  • 他/她的老师姓名

  • 因他/她聪明而讨厌他/她的人数

  • 所有科目的平均成绩

  • 他/她相信自己是世界上最聪明的人吗?

  • 他/她有哪些弱点?

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

分类

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

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

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

选项

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

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

  • 喜欢垃圾食品

  • 需要电子游戏

  • 大眼镜

将始终是这些之一。

使用选项的递归模板

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

Customizations Everywhere

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

Templateception

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

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

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

我为什么需要这个?

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

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

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

这是否适用于任何模型?

是也不是。

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

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

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

安装

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

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

配置

要启用主自定义信息菜单

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

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

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

用法

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

要定义一个模板,您需要

  • 转到自定义信息 > 模板

  • 创建一个。

  • 向其中添加一些属性

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

要管理属性,您需要

  • 转到自定义信息 > 属性

要管理属性类别,您需要

  • 转到自定义信息 > 类别

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

  • 转到自定义信息 > 选项

要管理它们的值,您需要

  • 转到自定义信息 > 值

Try me on Runbot

开发

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

请参阅product_custom_info插件中的示例。

已知问题/路线图

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

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

错误跟踪器

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

致谢

贡献者

维护者

Odoo Community Association

此模块由OCA维护。

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

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

项目详情


下载文件

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

源代码分发

此发布中没有可用的源代码分发文件。请参阅生成分发存档的教程。

构建分发

odoo10_addon_base_custom_info-10.0.1.1.0-py2-none-any.whl (353.8 kB 查看哈希值)

上传时间 Python 2

由以下提供支持