Django 如何处理上传文件的临时存储
在我的django应用程序中,我有一个多步骤注册,几乎没有条件参数。正因为如此,我想出了在会话中存储表单数据的方法。不幸的是,会话使用pickle序列化数据,pickle不支持文件序列化并导致Django 如何处理上传文件的临时存储,django,django-file-upload,django-sessions,static-files,Django,Django File Upload,Django Sessions,Static Files,在我的django应用程序中,我有一个多步骤注册,几乎没有条件参数。正因为如此,我想出了在会话中存储表单数据的方法。不幸的是,会话使用pickle序列化数据,pickle不支持文件序列化并导致 PicklingError:无法pickle:属性查找cStringIO.StringO失败。如何解决这个问题?我应该将图像作为变量发送到以下所有视图,还是将其作为GET参数发送,或者以其他方式发送?我不确定是否需要任何示例代码,因为问题似乎很清楚。如果正在上载的文件大小超过几KB,那么您可能不想在会话中
PicklingError:无法pickle:属性查找cStringIO.StringO失败
。如何解决这个问题?我应该将图像作为变量发送到以下所有视图,还是将其作为GET参数发送,或者以其他方式发送?我不确定是否需要任何示例代码,因为问题似乎很清楚。如果正在上载的文件大小超过几KB,那么您可能不想在会话中存储它们(并且您肯定不想通过GET将它们发送回浏览器)
我可以想出几个选择:
- 你可以重写你的注册表格,以便上传的文件排在最后李>
- 您可以使表单成为一个单步,并使用javascript(例如,通过隐藏和显示DIV)伪造多步李>
- 您可以将临时文件保存在磁盘上,并在会话中存储文件名(记住定期清理旧文件)
- 您可以简化注册,并在“个人资料”页面上传文件(在允许访问网站的其余部分之前,可能强制执行“您必须填写个人资料”要求)李>