2017-02-19 3 views
1

django-import-export 내 장고 사이트 관리 인터페이스로 데이터를로드하는 데 사용하고 있습니다.장고 가져 오기 내보내기 before_save_instance 행 데이터에 액세스하는 방법

입력 중에 django-import-export로 업로드되는 것과 관련된 다른 모델을 생성 및 수정하는 것과 관련된 복잡한 데이터 유효성 검사를 수행하고 싶습니다.

마치이 복잡한 인증을 수행하려는 import workflow의 시간이 before_save_instance 인 것처럼 보입니다.

before_save_instance의 입력 매개 변수에는 가져올 행의 모든 ​​데이터를 포함하지 않는 업데이트되는 모델의 개체 만 포함됩니다.

특히 어디에서나 가져올 수있는 행의 읽기 전용 필드가 표시되지 않습니다 (그리고 유효성 검사 로직이 필요합니다).

before_save_instance에서 가져 오는 전체 행에 대한 액세스 권한을 얻으려면 어떻게해야합니까? 당신이 before_save_instance에 전달 된 instance의 값에 액세스 할 수 있습니다 주어진 field에 대한

self.get_fields()

그리고 당신 :

답변

1

그것은 당신이 문제의 객체의 필드의 목록을 얻을 수 있습니다 밝혀 :

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) 방법을 대체 할 수 있습니다.