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 用户登录验证的小例子
Mar 06 Python
Python的Flask框架的简介和安装方法
Nov 13 Python
python使用电子邮件模块smtplib的方法
Aug 28 Python
Python批量更改文件名的实现方法
Oct 29 Python
Python3 操作符重载方法示例
Nov 23 Python
批量将ppt转换为pdf的Python代码 只要27行!
Feb 26 Python
对Python subprocess.Popen子进程管道阻塞详解
Oct 29 Python
python实现windows壁纸定期更换功能
Jan 21 Python
python环境路径配置以及命令行运行脚本
Apr 02 Python
python之MSE、MAE、RMSE的使用
Feb 24 Python
浅析Python 字符编码与文件处理
Sep 24 Python
Python爬虫之爬取某文库文档数据
Apr 21 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 ImageMagick windows下安装教程
2015/01/26 PHP
php使用类继承解决代码重复的问题
2015/02/11 PHP
PHP容器类的两种实现方式示例
2019/07/24 PHP
PHP的new static和new self的区别与使用
2019/11/27 PHP
关于PHP5.6+版本“No input file specified”问题的解决
2019/12/11 PHP
javascript 日期时间函数(经典+完善+实用)
2009/05/27 Javascript
js loading加载效果实现代码
2009/11/24 Javascript
Javascript学习笔记2 函数
2010/01/11 Javascript
javascript 实用的文字链提示框效果
2010/06/30 Javascript
javascript截取字符串(通过substring实现并支持中英文混合)
2013/06/24 Javascript
js继承call()和apply()方法总结
2014/12/08 Javascript
JavaScript实现url参数转成json形式
2016/09/25 Javascript
微信小程序 Flex布局详解
2016/10/09 Javascript
Bootstrap幻灯片轮播图支持触屏左右手势滑动的实现方法
2016/10/13 Javascript
利用vue写todolist单页应用
2016/12/15 Javascript
一文让你彻底搞清楚javascript中的require、import与export
2017/09/24 Javascript
JavaScript如何对图片进行黑白化
2018/04/10 Javascript
JS中判断某个字符串是否包含另一个字符串的五种方法
2018/05/03 Javascript
axios的拦截请求与响应方法
2018/08/11 Javascript
微信小程序 函数防抖 解决重复点击消耗性能问题实现代码
2019/09/12 Javascript
python实现csv格式文件转为asc格式文件的方法
2018/03/23 Python
使用memory_profiler监测python代码运行时内存消耗方法
2018/12/03 Python
利用python实现周期财务统计可视化
2019/08/25 Python
Python实现Keras搭建神经网络训练分类模型教程
2020/06/12 Python
新加坡领先的时尚生活方式零售品牌:CHARLES & KEITH
2018/01/16 全球购物
为女性购买传统的印度服装和婚纱:Kalkifashion
2019/07/22 全球购物
高中军训第一天感言
2014/03/06 职场文书
中药学专业毕业生推荐信
2014/07/10 职场文书
最新离婚协议书范本
2014/08/19 职场文书
地理信息科学专业推荐信
2014/09/08 职场文书
入党积极分子学习党的纲领思想汇报
2014/09/13 职场文书
水电工程师岗位职责
2015/02/13 职场文书
食品质检员岗位职责
2015/04/08 职场文书
书法社团活动总结
2015/05/07 职场文书
教师节大会主持词
2015/07/06 职场文书
创业计划书之蛋糕店
2019/08/29 职场文书