You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django Import-Export导入CSV重复且skip_unchanged不生效问题

Django Import Export 重复导入问题修复方案

问题现象

配置skip_unchanged=True后,重复导入同一份CSV文件依然会生成重复记录,预期效果为相同记录直接跳过、有变更的记录执行更新。

原有配置

Resource文件核心配置如下:

bill_date = fields.Field(
    attribute="bill_date", column_name="date", widget=widgets.DateWidget()
)
import_id_fields = ("account_number",)

排查步骤

在skip_row方法中添加日志打印新旧实例的bill_date属性:

print(f"{getattr(original, 'bill_date')} - {getattr(instance, 'bill_date')}")

得到输出:None - 2021-06-07,说明导入流程没有获取到数据库中已存在的旧实例。

根因与解决方法

问题根源是测试时误添加了get_instance = False配置:
该参数控制导入流程是否会根据import_id_fields查询数据库获取已存在的实例,设为False后,系统会默认所有导入行都是新增数据,无法触发新旧字段对比逻辑,自然也不会执行跳过、更新操作,最终产生重复记录。
直接删除get_instance = False配置即可恢复正常逻辑,系统会自动匹配已有记录,配合skip_unchanged=True实现无变更跳过、有变更更新的效果。

内容的提问来源于stack exchange,提问作者n0minal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 20:30:04