如何在Django会话中保存ImageField类对象?

时间:2019-10-17 14:18:30

标签: django

我无法在Django会话中保存ImageField类对象。

我想在会话中保存的对象类型如下。

<class 'django.db.models.fields.files.ImageFieldFile'>

我要这样做的原因

是我要保存数据直到最终注册,以便从表单转换到确认页面时此发布的图像数据不会消失。

我在下面尝试过。

views.py

class ProductRegister(LoginRequiredMixin, CreateView):
    template_name = 'app/product_register.html'
    form_class = ProductRegisterForm

    def form_valid(self, form):
        ctx = {'form': form}

        temporary_product_object = form.save(commit=False)
        self.request.session['product_image'] = temporary_product_object.product_image

        return render(self.request, 'app/product_register_confirm.html', ctx)


但是发生了错误。

错误消息

TypeError at /app/product_register/35
Object of type ImageFieldFile is not JSON serializable


这是models.py供参考。

models.py

product_image = models.ImageField(
        upload_to='images/',
        blank=True,
        null=True,
    )

任何反馈,我们将不胜感激。谢谢

0 个答案:

没有答案