Фильтр строк из Excel при импорте с помощью Django Import-Export

У меня есть новое веб-приложение Django (мое первое на python) и я использую импорт-экспорт в разделе администратора, чтобы взять файл excel и загрузить его в мою базу данных. Загрузка работает отлично, но мне нужно добавить две функции:

  1. Is there a way to truncate all the existing data in the application database table before the upload?
  2. What is the best way to filter out rows from the Excel file that don't match a condition (if column value of a row != X)

Я прочитал документацию, и кажется, что для вопроса 2 единственным вариантом является реализация метода for_delete. Мне трудно поверить, что это лучший способ, но я совсем новичок в python и Django.

  1. Override before_import() для удаления всех строк.
  2. Override skip_row() для пропуска строки, если условие не выполняется.
class SaleResource(resources.ModelResource):
    myColumn = fields.Field(attribute='myColumn', column_name="my_Column")

    def before_import(self, dataset, using_transactions, dry_run, **kwargs):
        if not dry_run:
            self._meta.model.objects.delete()

    def skip_row(self, instance, original):
        # 'instance' will be an instance of Sale
        # simple compare the value set on the model instance
        return instance.myColumn != "myValue"

    class Meta:
        model = Sale
Вернуться на верх