使用Django Import-Export导入文件时,如何访问行值?

时间:2019-02-12 23:40:11

标签: django django-import-export

我正在使用django import-export导入文件,我想获取每一行的值。

例如:

import_resource = ImportResource()
dataset = Dataset()
imported_data = dataset.load(import_file.read().decode('utf-8'))
result = import_resource.import_data(dataset, dry_run=True)

我用result.rows遍历Result的各行,每行似乎都有一个raw_values属性,但返回空。

1 个答案:

答案 0 :(得分:0)

尝试以下代码。

class OtherResource(resources.ModelResource):
    """
    My code
    """               
    def before_import_row(self, row, **kwargs):
        row['created_by'] = kwargs.get('user')
        row['modified_by'] = kwargs.get('user')

class MyClassAdmin(ImportMixin, admin.ModelAdmin):

    resource_class = OtherResource

    def import_data(self, dataset, dry_run=False, raise_errors=False, use_transactions=None, collect_failed_rows=False, **kwargs):
        """
        Getting the user's request to pass it to the import
        """
        result = OtherResource.import_data(dataset, dry_run=False, raise_errors=False, use_transactions=None, user=self.request.user)
        return result

您必须记住有很多动作,例如:before_import_row,after_import_row等。