Как получить доступ к данным строки в before_save_instance для Django Import Export

Я пытаюсь использовать django-import-export для загрузки данных в интерфейс администратора моего сайта Django.

Во время ввода я хочу выполнить некоторую сложную проверку данных, которая включает создание и / или изменение других моделей, связанных с той, которая загружается в django-import-export.

Кажется, что before_save_instance hook - это время в рабочем процессе импорта, когда я хочу выполнить эту сложную проверку.

before_save_instanceВходные параметры включают в себя только объект для обновляемой модели, который не содержит все данные из импортируемой строки.

В частности, я не вижу нигде не импортируемых полей только для чтения из строки (и они мне нужны для логики проверки).

Как я могу получить доступ ко всей импортируемой строке изнутри before_save_instance?

1 ответ

Оказывается, вы можете получить список полей рассматриваемого объекта с помощью:

self.get_fields()

А тебе за данное field Вы можете получить доступ к значениям для instance перешел в before_save_instance с:

field_value = None try: field_value = field.get_value(instance).all() except AttributeError: field_value = field.get_value(instance)

Вы также можете переопределить before_insert_rows(self, rows, **kwargs) способ получить доступ к необработанной информации строки.

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