skip_unchanged 和 report_skipped 在 django 导入导出

skip_unchanged and report_skipped in django import-export

django 导入导出文档说

report_skipped= 正确

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


skip_unchanged=假

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


我不太明白他们想说什么,我已经使用过它们(在不理解的情况下复制粘贴)。有人可以解释一下它们的用途。谢谢你。

如果您不确定,最好直接查看 source。显然我不需要解释为什么 'copy pasted without understanding' 是个坏主意。

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

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

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

skip_unchanged

如果保留的行与导入的行完全匹配,此标志控制是否跳过任何​​现有行。跳过的行意味着未更新持久记录。

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

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

report_skipped

此设置意味着如果跳过一行,则它将附加到一个列表中,一旦导入完成就可以读取该列表。主要用例是记录或报告导入结果。例如,创建了 X 行,更新了 Y 行,跳过了 Z 行。

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