无法使用django-import-export中的before_import覆盖功能插入标头

问题描述 投票:0回答:1

我正在使用django-import-export通过django admin上传csv文件。我有能力覆盖before_import函数以在导入之前添加功能。我有一个没有标题的csv文件,实际数据从第一行开始。我需要添加标题,或者在我的csv文件上传之前插入一行,以便可以正确读取。

class UpdateResource(resources.ModelResource):
    def before_import(self, dataset, using_transactions, dry_run, **kwargs):
        dataset.header = ['sku', 'quantity']

    class Meta:
        model = Upload
        import_id_fields = ('sku',)

此代码将我的csv文件的第一行的值更改为sku,quantity,但我需要在该值之上插入一个,而不是替换它。或者,如果有一个选项可以忽略标题,只是将值从左到右或某些东西映射到我的模型,那也会很棒。

django-import-export
1个回答
2
投票

我的修复是将第一行存储为变量,创建所需的标题并将第一行追加到文件末尾。

class UpdateResource(resources.ModelResource):
    def before_import(self, dataset, using_transactions, dry_run, **kwargs):
        first_row = dataset.header
        dataset.header = ['sku', 'quantity']
        dataset.append(first_row)
© www.soinside.com 2019 - 2024. All rights reserved.