2017-02-19 61 views
1

我试图用django-import-export将数据加载到我的Django的网站管理界面。如何访问行数据在before_save_instance Django的进出口

在我想做的事情,涉及创建和/或修改与一个其他型号一些复杂的数据验证输入被上传到与Django的进出口。

看起来好像before_save_instance挂钩是import workflow的时间,我想执行这个复杂的验证。

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)方法来获得访问原始行的信息。

相关问题