前提・実現したいこと
Djangoのセッションに以下の形式のオブジェクトを保存したいです。
<class 'django.db.models.fields.files.ImageFieldFile'>
具体的には以下のmodel.pyで指定した画像のオブジェクトです。
python
1product_image = models.ImageField( 2 verbose_name='商品サムネイル', 3 upload_to='images/', 4 blank=True, 5 null=True, 6 )
発生している問題・エラーメッセージ
以下の「該当のソースコード」の通り、オブジェクトをそのまま保存しようとすると下記のエラーが発生します。
python
1TypeError at /app/product_register/35 2Object of type ImageFieldFile is not JSON serializable
何故これをしたいか
以下のviews.pyの通り、CreateViewとmodelformの組み合わせでフォーム入力画面を作っており、そのフォーム画面から画像ファイルをアップロードし、「確認ボタン」を押すことにより、一旦確認画面に引き継ぎたいのですが、画像ファイルだけ、うまく引き継ぐことができず(確認画面でファイルが空になってしまう)、仕方ないので、ファイルオブジェクトをセッションで確認画面まで引き継ぎたいと考えている。
該当のソースコード
views.py
python
1class FarmProductRegister(LoginRequiredMixin, CreateView): 2 template_name = 'app/product_register.html' 3 form_class = ProductRegisterForm 4 5 def form_valid(self, form): 6 ctx = {'form': form} 7 8 temporary_product_object = form.save(commit=False) 9 self.request.session['product_image'] = temporary_product_object.product_image
補足情報(FW/ツールのバージョンなど)
python3.7
Django==2.2.4
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。