Как получить доступ к значениям строк при импорте файла с помощью 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 и каждый ряд, кажется, имеет raw_values свойство, но оно возвращается пустым.

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 среди других.

Другие вопросы по тегам