导入/导出模式
项目描述
概述
此模块扩展了Odoo的导入/导出功能。
模式只是ir.exports模型的一种类型,因此您可以使用本机Odoo小部件来定义导出列表。
此模块仅创建一个通用数据结构。其他模块将被用来添加特定文件类型支持,如Excel和CSV。
功能
键匹配:不是总是使用ID,匹配键到唯一约束字段,例如通过指定产品代码而不是其数据库ID或外部ID来更新产品
支持One2many和Many2many:以非常易读和易于更新的语法创建或更新发票行等
只要您遵守适当的格式和字段名称,您可以自由地添加/删除/重命名列,即使它们不在用于导出的初始模式中
目录
配置
安装支持特定文件类型的另一个模块
使用模式菜单来配置您的导入/导出格式
使用
配置模式
首先您必须定义一个模式
转到导入/导出->模式菜单
创建您的模式,包括要导出的字段
您可以根据示例数据中的示例进行参考。
导出
打开任何模型的树视图并勾选一些记录选择框。
在侧边栏中,单击“使用模式导出”按钮
选择您希望使用的模式,点击导出并下载生成的文件。
创建了一个“模式文件”,与其相关的作业也会创建。根据作业的成功或失败,您将在窗口上收到红色/绿色通知。
导入
您有两种选择
打开任何模型的树视图并勾选一些记录选择框(对于此步骤,这些并不重要,我们只想显示侧边栏)。
在侧边栏中,单击“使用模式导入”按钮
选择一个模式,上传您的文件并单击导入。
创建了一个“模式文件”,与其相关的作业也会创建。根据作业的成功或失败,您将在窗口上收到红色/绿色通知。您可以在相应的导入/导出菜单中查看详细信息。
或者
通过导入/导出菜单访问导入向导
选择一个模式
单击“导入”按钮
导入语法
pattern_import_export模块的一个优点是能够通过自然键(业务键)而不是技术键(xmlid或数据库id)来引用记录。
一个或多个列可以是记录的自然键,用于查找和更新或创建新记录。自然键中的每个列都必须以“#key”后缀。
一个或多个列可以用作外键,可以使用“|”语法访问。(例如,在合作伙伴中:country_id|code)
示例
以下是一个对product.product
的简单更新的示例:现有记录
id: 10
name: “产品1”
default_code: “PRD1”
生成的导出将看起来像这样
id |
name |
default_code |
---|---|---|
10 |
Product 1 |
PRD1 |
更新后的文件
id |
name |
default_code |
---|---|---|
10 |
Product 1-bis |
PRD1B |
导入后,我们的记录将被更新
xml id: “__export__.product1”
name: “Product 1-bis”
default_code: “PRD1B”
现在,让我们更新一些关联字段。以下是我们的一些初始数据
seller_ids
id(seller_id的id,它是res.partner):22
name(卖家):合作伙伴1
价格:10
生成的导出应该如下所示
id |
name |
default_code |
seller_ids|1|id |
seller_ids|1|price |
---|---|---|---|---|
10 |
Product 1 |
PRD1 |
22 |
10 |
假设“ref”是一个唯一约束的Char字段。对于卖家,我们不想使用它的id,而是使用它的ref。
id |
name |
default_code |
seller_ids|1|ref#key |
seller_ids|1|price |
---|---|---|---|---|
10 |
Product 1 |
PRD1 |
partner1-ref |
10 |
因此,这个#key
意味着Odoo应该搜索一个res.partner
,其ref与单元格值匹配。
让我们再举一个例子,我们不想使用id,而想使用产品的default_code作为键。
id |
name |
default_code#key |
seller_ids|1|ref#key |
seller_ids|1|price |
---|---|---|---|---|
Product 1 |
PRD1 |
partner1-ref |
10 |
Odoo将搜索匹配的default_code
的产品并更新它。
技术上
添加新的导出格式
继承
ir.exports
模型。在
export_format
选择字段中添加您的新文件格式;实现函数
_export_with_record_<format>
和_read_import_data_<format>
。
请小心处理迭代器(yield
),以避免将整个文件加载到系统内存中。
已知问题/路线图
取消勾选“使用制表符”布尔值应该清除之前选中的tab_filter_id
更改行的字段应该清除之前选中的tab_filter_id
错误追踪器
错误在GitHub Issues上跟踪。如果遇到问题,请检查是否已报告您的问题。如果是您首先发现的,请通过提供详细且受欢迎的反馈来帮助我们解决它。
请勿直接联系贡献者以获取支持或帮助解决技术问题。
鸣谢
贡献者
Chafique Delli <chafique.delli@akretion.com>
塞巴斯蒂安·博 sebastien.beau@akretion.com>
弗朗索瓦·霍诺雷(ACSONE SA/NV) francois.honore@acsone.eu>
凯文·昊 kevin.khao@akretion.com>
拉斐尔·雷维迪 raphael.reverdy@akretion.com>
维护者
本模块是GitHub上 shopinvader/pattern-import-export 项目的组成部分。
欢迎您贡献力量。
项目详情
散列值 for odoo14_addon_pattern_import_export-14.0.2.9.0-py3-none-any.whl
算法 | 散列摘要 | |
---|---|---|
SHA256 | 6f9c282d2d73b72d46a1e0c0a0466c788b3f6db79a28e111db23723056f26760 |
|
MD5 | 84d66faad817e53417b3fec17740e9f0 |
|
BLAKE2b-256 | 1a1179b6bf0fca25fa6d75a63087cac8d830bdec348f76b15d38d97626fdc091 |