我尝试使用django-import-export将数据加载到我的Django网站管理界面。
在输入过程中,我想做一些复杂的数据验证,包括使用django-import-export创建和/或修改与上传的模型相关的其他模型。
似乎before_save_instance
挂钩是import workflow中我想要执行此复杂验证的时间。
before_save_instance
的输入参数仅包含要更新的模型的对象,该对象不包含正在导入的行中的所有数据。
特别是我没有看到任何地方导入行中的只读字段(我需要它们作为验证逻辑)。
如何访问从before_save_instance
内部导入的整行?
答案 0 :(得分:1)
事实证明,您可以通过以下方式获取相关对象上的字段列表:
priority
对于给定的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)
方法以访问原始行信息。