在Django进出口中的skip_unchanged和report_skipped report_skipped =真 skip_unchanged =假 skip_unchanged report_skipped

问题描述

django进出口文件

report_skipped =真

控制结果是否报告跳过的行认值为True


skip_unchanged =假

控制导入是否应跳过未更改的记录。认值为False


我不太了解他们要说的是什么,我已经使用了它们(复制粘贴但不理解)。有人可以解释一下它们的用途。谢谢。

解决方法

如果不确定,直接查看source是个好主意。显然,我不需要说明为什么“不加理解地粘贴复制”是一个坏主意。

这两个标志控制当导入检测到存在与要导入的记录匹配的已存储记录时发生的行为。

导入逻辑需要进行此检查,以避免在导入后出现不必要的重复的风险。如果您可以在导入中包含一个标识符,该标识符是导入行的全局ID,那么这将有助于确保导入安全,并且在必要时可以重新运行而不会导致重复。

将使用import_id_fields设置来检测现有记录。

skip_unchanged

如果保留的行与导入的行完全匹配,则此标志控制是否跳过任何​​现有行。跳过的行表示保留的记录不会更新。

如果启用,则默认逻辑(skip_row())将检查fields中声明的每个字段,如果所有值均与导入的值匹配,则跳过该行。

默认值为False,这意味着如果在导入过程中发现了现有行,则将使用导入中的值对其进行更新。

report_skipped

此设置意味着,如果跳过某行,则将其添加到列表中,导入完成后即可读取。这样做的主要用例是记录或报告导入结果。例如,创建了X行,更新了Y行,跳过了Z行。

默认为True。如果您确实不需要报告跳过的行,那么将此值设置为False将节省一些内存和处理时间。