2016-04-22 6 views
0

私のdjangoフォームウィザードで、ファイルフィールドを追加してcsvファイルをアップロードしました。 get_context_dataでは、ファイルに含まれている情報の一部を処理しようとしています。django- TypeError csvファイル、無効なファイルをアップロード中

(self.get_cleaned_data_for_step('0')['file'])を印刷してオブジェクトを返します。私は file = open(self.get_cleaned_data_for_step('0')['file'], "rb") を使用して、それを開こうとするが、それはこのエラーを返します。 TypeError at /research/lists/1/import/ invalid file: <UploadedFile: SalesJan2009.csv (application/vnd.ms-excel)>

は、MIMEタイプの問題がここにありますか?ファイルがアップロードされた後にMimeタイプを変更する方法はありますか?

+0

あなたは 'self.get_cleaned_data_for_step( '0')['file']'の値を投稿できますか? – trinchet

+0

私はBook1.csvをアップロードしました。印刷されたものは "Book1.csv"でした。 – user2747383

+0

'csv'ファイルはバイナリではないので、" rb "の代わりに" r "としてファイルを開いてください。 – trinchet

答えて

0

cleaned_dataからアップロードしたファイルにアクセスすることはできません。 FormWizardのアップロードファイルの使用方法についてはdocumentationをご覧ください。

To handle FileField within any step form of the wizard, you have to add a file_storage to your WizardView subclass.

This storage will temporarily store the uploaded files for the wizard. The file_storage attribute should be a Storage subclass.

あなたはWizardViewクラスを使用すると、アップロードしたファイルを取得できるようになるget_form_step_files方法がありますこれを設定したら。

関連する問題