我正在使用“django import export”(DIE)来导入和更新一些数据。
导入过程从检查数据库中存在的对象开始,按 ID 字段中的值搜索,如果未找到来自导入文件的 ID 行 - 将创建新条目。我如何制作“仅更新”场景,如果在 DB 中找不到“id key”,则将跳过行(不添加新的)?
我的模型.py
class Size(models.Model):
id = models.AutoField(unique=True, primary_key=True, null=False, blank=False)
height = models.SmallIntegerField()
width = models.SmallIntegerField()
class Product(models.Model):
id = models.AutoField(unique=True, primary_key=True, null=False, blank=False)
vendor_code = models.CharField(unique=True, max_length=50, null=False, blank=False)
price = models.DecimalField(null=False, blank=False)
size = models.ForeignKey(Size, verbose_name=u'Size')
在资源.py
class ProductSyncResource(resources.ModelResource):
class Meta:
model = ProductVariant
import_id_fields = ('vendor_code',)
fields = ('vendor_code', 'price',)
export_order = ('vendor_code', 'price', 'status', )
skip_unchanged = True
report_skipped = True
dry_run = True
导入表 (xls)
如果没有找到 vendor_code 'Tк-12856'(单元格 A3),则 DIE 将尝试添加此行,并且:
- 我们将从数据库中得到错误(外键检查列“大小”)
- 我不需要在我的“更新方案”中将此行添加到数据库