django多文件上传,form提交,多对多外键保存的实例


Posted in Python onAugust 06, 2019

需求:

需要实现一个用户反馈的接口,用户通过接口提交:

1.一段文字

2. 一个log文件

3. 多个图片

找了很多ModelForm,DRF-Serializer的资料,都没找到简单好用的,干脆就直接写,啥也不用。

Model.py

class UserFeedback(models.Model):
 user = models.ForeignKey(User, verbose_name="用户")
 desc = models.TextField(default="", verbose_name=u'问题描述')
 logfile = models.FileField(upload_to='UserFeedback/%Y/%m/', 
 verbose_name=u'log文件',null=True, blank=True)
 submit_time = models.DateTimeField(default=datetime.now, verbose_name="提交时间")
 images=models.ManyToManyField("UserFeedbackImages",verbose_name=u'图片')
 
class UserFeedbackImages(models.Model):
 image = models.ImageField(upload_to='UserFeedbackImages/%Y/%m/',
  verbose_name=u'反馈图片', null=True, blank=True)

由于一个反馈,可以保护多个图片,所以images字段是ManyToMany

html:

<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8">
 <title>用户反馈</title>
</head>
<body>
<form action="" method="post" enctype="multipart/form-data">
 <textarea name="desc"></textarea>
 <input type="file" name="logfile">
 <input type="file" name="images" multiple>
 <button type="submit">提交</button>
</form>
</body>
</html>

<form>中必须要加上:

enctype="multipart/form-data"

和input中定义:

multiple

View.py中,先把所有的图片保存下来,然后在创建反馈后,添加图片关联。

class feedback(LoginRequiredMixin,APIView):
 def post(self, request):
  #save all images
  ret={}
  try:
   imgs=[]
   for payload in request.data.getlist("images"):
    img=UserFeedbackImages.objects.create(image=payload)
    imgs.append(img)  
   ufb=UserFeedback.objects.create(user=request.user,
   desc=request.POST.get("desc"),
   logfile=request.data.get("logfile"))
   for img in imgs:
    ufb.images.add(img)
   ufb.save()
   ret["status"]="success"
  except Exception as e:
   ret["status"]="fail"
   ret["msg"]=str(e)
  return Response(json.dumps(ret))

这样简单粗暴,也容易理解。这里记录下。

以上这篇django多文件上传,form提交,多对多外键保存的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python判断字符串与大小写转换
Jun 08 Python
详细解读Python中解析XML数据的方法
Oct 15 Python
Python切片知识解析
Mar 06 Python
python实现二维码扫码自动登录淘宝
Dec 27 Python
Python实现删除文件中含“指定内容”的行示例
Jun 09 Python
对numpy的array和python中自带的list之间相互转化详解
Apr 13 Python
python实现连续图文识别
Dec 18 Python
Python实现多进程的四种方式
Feb 22 Python
关于pytorch处理类别不平衡的问题
Dec 31 Python
Django REST Swagger实现指定api参数
Jul 07 Python
如何利用opencv判断两张图片是否相同详解
Jul 07 Python
python可视化分析绘制带趋势线的散点图和边缘直方图
Jun 25 Python
详解python中的index函数用法
Aug 06 #Python
详解python 利用echarts画地图(热力图)(世界地图,省市地图,区县地图)
Aug 06 #Python
对Django url的几种使用方式详解
Aug 06 #Python
Python 保持登录状态进行接口测试的方法示例
Aug 06 #Python
解决Django 在ForeignKey中出现 non-nullable field错误的问题
Aug 06 #Python
django基于存储在前端的token用户认证解析
Aug 06 #Python
django基于cors解决跨域请求问题详解
Aug 06 #Python
You might like
优化PHP代码的53条建议
2008/03/27 PHP
简单的php+mysql聊天室实现方法(附源码)
2016/01/05 PHP
Linux下快速搭建php开发环境
2017/03/13 PHP
PHP实现的CURL非阻塞调用类
2018/07/26 PHP
CodeIgniter框架钩子机制实现方法【hooks类】
2018/08/21 PHP
laravel-admin自动生成模块,及相关基础配置方法
2019/10/08 PHP
php post换行的方法
2020/02/03 PHP
一个用js实现控制台控件的代码
2007/09/04 Javascript
JavaScript面向对象编程
2008/03/02 Javascript
通过 Dom 方法提高 innerHTML 性能
2008/03/26 Javascript
javascript避免数字计算精度误差的方法详解
2014/03/05 Javascript
javascript实现类似超链接的效果
2014/12/26 Javascript
JavaScript操作DOM元素的childNodes和children区别
2015/04/01 Javascript
JavaScript之数组(Array)详解
2015/04/01 Javascript
详解vue.js 开发环境搭建最简单攻略
2017/06/12 Javascript
jQuery实现的两种简单弹窗效果示例
2018/04/18 jQuery
vue使用原生js实现滚动页面跟踪导航高亮的示例代码
2018/10/25 Javascript
小程序getLocation需要在app.json中声明permission字段
2019/04/04 Javascript
React精髓!一篇全概括小结(急速)
2019/05/23 Javascript
解决vue 子组件修改父组件传来的props值报错问题
2019/11/09 Javascript
[01:07:21]NAVI vs VG Supermajor 败者组 BO3 第二场 6.5
2018/06/06 DOTA
Python牛刀小试密码爆破
2011/02/03 Python
python元组操作实例解析
2014/09/23 Python
python删除列表中重复记录的方法
2015/04/28 Python
tensorflow实现softma识别MNIST
2018/03/12 Python
深入flask之异步非堵塞实现代码示例
2018/07/31 Python
Python通过for循环理解迭代器和生成器实例详解
2019/02/16 Python
pytorch 实现张量tensor,图片,CPU,GPU,数组等的转换
2020/01/13 Python
在Django中自定义filter并在template中的使用详解
2020/05/19 Python
CSS3制作苹果风格键盘特效
2015/02/26 HTML / CSS
Elemental Herbology官网:英国美容品牌
2019/04/27 全球购物
如何将一个描述日期或日期/时间的字符串转换为一个Date对象
2015/10/13 面试题
思想品德自我评价
2014/02/04 职场文书
教师党员个人剖析材料
2014/09/29 职场文书
政府班子四风问题整改措施
2014/10/04 职场文书
七年级作文之关于奶奶
2019/10/29 职场文书