并发条件下对于一个对象的不同图片进行操作,导致只有一张生效

class PersonalId(models.Model):imageface = models.ImageField(null=True, blank=True, upload_to='personalid/%Y/%m/%d/')imageback = models.ImageField(null=True, blank=True, upload_to='personalid/%Y/%m/%d/')

对于PersonalId对象上传 face和back照片时候,如果是同步请求,不会出现任何问题
但是并发请求的生活会导致只有一张进行上传

原因:根据django的model.save()机制,如果是update操作,会将里面的值全部重新set,并非只对应某个字段进行更新。
故当并发获取对象的时候,2个对象其实都获取相同的数据,但是当其中一个对象更新了,另外一个对象的数据并未更新
而在另外一个对象更新的时候,会将原始数据也重新覆盖。

解决方法:制定save的字段,只对某个字段更新。model.save(update_fileds=['imageface'])
** 留意 ** 当对于文件对象进行删除的时候,也是对于全数据段更新 model.imageface.delete() 故如果有相关并发操作,不建议直接使用此函数,
可通过os.remove进行删除

def remove_files(path):"""删除存在系统中的文件:param path: list or str:return:"""if isinstance(path, (str, unicode)):path = [path]elif isinstance(path, list):passelse:raise ValueError("传入参数错误")for item in path:try:os.remove(item)except OSError:continue

转载于:https://www.cnblogs.com/Zidon/p/7976212.html

django文件上传,只上传一张相关推荐

  1. django文件上传到服务器,django上传文件的三种方式

    Django文件上传需要考虑的重要事项 文件或图片一般通过表单进行.用户在前端点击文件上传,然后以POST方式将数据和文件提交到服务器.服务器在接收到POST请求后需要将其存储在服务器上的某个地方.D ...

  2. django文件上传

    Django在处理文件上传时,文件数据被打包封装在request.FILES中. 一.简单上传 首先,写一个form模型,它必须包含一个FileField: # forms.py from djang ...

  3. Input type=“file“上传文件change事件只触发一次解决方案

    Input type="file"上传文件change事件只触发一次解决方案 参考文章: (1)Input type="file"上传文件change事件只触发 ...

  4. Django文件上传***

    分别用三种Django文件上传方式(form方式.jQuery+jQuery.ajax方式.原生JS+原生ajax方式)做上传功能示例 文件 文件释义 form_upload.html form上传文 ...

  5. el-upload 多文件 上传 只执行一次成功回调on-success的问题

    一.问题背景** 背景:使用element的上传组件,在使用多文件上传时,发现如果同时选择两个文件,上传完成之后,upload组件的列表只显示一个文件. 通过查看控制台发现on-success方法在上 ...

  6. Vue3中Element-Plus的el-upload限制只上传一个文件(最简单明了)

    核心技术: //限制只上传一个文件 function handleChangePic(file:any,fileList:any){if (fileList.length > 1) {fileL ...

  7. Django自定义Storage实现图片上传至各大OSS(上篇)

    目录 Django默认Storage介绍 自定义Storage `__init__()`构造函数 `open()`函数 `save()`函数 `delete()`函数 `url()`函数 `path( ...

  8. Linux命令scp用于远程文件的拷贝(上传和下载)

    3_Linux命令scp用于远程文件的拷贝(上传和下载) 文章目录 1.SCP简介 2.SCP使用 2.1.命令格式: 2.2.命令功能: 2.3.命令参数: 3.使用实例: 如何将本地文件通过终端上 ...

  9. vue前端上传文件夹的插件_基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件...

    1. 前言 之前公司要在管理系统中做一个全局上传插件,即切换各个页面的时候,上传界面还在并且上传不会受到影响,这在vue这种spa框架面前并不是什么难题.然而后端大佬说我们要实现分片上传.秒传以及断点 ...

  10. dio 上传文件报错_Vue+Element UI实现断点续传、分片上传、秒传

    作者:Pseudo 转发链接:https://segmentfault.com/a/1190000023434864 凡是要知其然知其所以然 文件上传相信很多朋友都有遇到过,那或许你也遇到过当上传大文 ...

最新文章

  1. pythonshell画图_Python Shell下使用matplotlib
  2. session 与 cookie的区别
  3. 小甲鱼-累加数据段中的前3个字型数据【不对的话,请指教!】
  4. 欧拉回路与欧拉路(模板)
  5. 【Demo】配置重试和超时策略
  6. 教你如何创建一款属于自己的VSCode主题
  7. 2.2 string
  8. Python3 爬虫学习笔记 C05 【Selenium + 无界面浏览器】
  9. 装机之windows10和ubuntu双系统
  10. 【跃迁之路】【706天】程序员高效学习方法论探索系列(实验阶段463-2019.1.26-27)...
  11. mysql中创建视图语法错误_mysql - 使用过程MySQL创建视图时出错 - 堆栈内存溢出
  12. PHP学习 - Composer的安装及配置
  13. 一图全解10个影响人类社会的算法
  14. 秦九韶算法的思想与解多项式算法时间比较附代码
  15. 随意发软件如何自动发帖已更新2022
  16. 新春蓝牙耳机怎么选?五年发烧友吐血盘点,高性能蓝牙耳机推荐
  17. 支付宝小程序登录 -tp
  18. 取消职称英语计算机考试的文件,2010年有没有可能取消职称英语及计算机考试...
  19. SQL Server 还原数据库
  20. 沈航计算机学院杨华,BCD码的加法.doc

热门文章

  1. 关于label在ie8,9下的兼容问题???
  2. iOS - UIRefreshControl 刷新数据
  3. What is WCF
  4. TOP10十大GPS导航手机(有车一族必备手机)
  5. encoder decoder模型_3分钟|聊一聊 Decoder 模块
  6. 最后一战 源代码_我们的故事 | 一枚“铁渣”的一战成名
  7. svpwm仿真_【好物推荐】《现代永磁同步电机控制原理及MATLAB仿真》
  8. mycat分表之ER表分片、范围分片、取模分片、日期分片、全局表等
  9. neo4j3.0 java使用_neo4j-java连接
  10. java jpanel 叠加_java – 如何在JPanel上叠加,调整大小和居中组件?