2017-02-19 10 views
1

django-import-exportを使用してDjangoサイトの管理インターフェースにデータをロードしようとしています。Djangoインポートエクスポートのbefore_save_instanceの行データにアクセスする方法

入力中に、django-import-exportを使用してアップロードされたモデルに関連する他のモデルの作成や変更を含む複雑なデータ検証を行いたいとします。

import workflowでは、この複雑な検証を実行したいと思うようですが、before_save_instanceフックのようです。

before_save_instanceの入力パラメータには、インポートされる行のすべてのデータが含まれていないモデルのオブジェクトのみが含まれます。

特に、どこからでもインポートされている行の読み取り専用フィールドは表示されません(また、検証ロジックに必要です)。

before_save_instanceの内部からインポートされる行全体にアクセスするにはどうすればよいですか?

答えて

1

それはあなたが問題のオブジェクトのフィールドのリストを取得することができ判明:

あなたと before_save_instanceに渡さ instanceの値にアクセスすることができます与えられた fieldため

self.get_fields()

そして、あなた:

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)メソッドをオーバーライドすることができます。

関連する問題