亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

django多文件上傳,form提交,多對(duì)多外鍵保存的實(shí)例

 更新時(shí)間:2019年08月06日 17:18:12   作者:一只小coder  
今天小編就為大家分享一篇django多文件上傳,form提交,多對(duì)多外鍵保存的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

需求:

需要實(shí)現(xiàn)一個(gè)用戶反饋的接口,用戶通過(guò)接口提交:

1.一段文字

2. 一個(gè)log文件

3. 多個(gè)圖片

找了很多ModelForm,DRF-Serializer的資料,都沒(méi)找到簡(jiǎn)單好用的,干脆就直接寫,啥也不用。

Model.py

class UserFeedback(models.Model):
 user = models.ForeignKey(User, verbose_name="用戶")
 desc = models.TextField(default="", verbose_name=u'問(wèn)題描述')
 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="提交時(shí)間")
 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)

由于一個(gè)反饋,可以保護(hù)多個(gè)圖片,所以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中,先把所有的圖片保存下來(lái),然后在創(chuàng)建反饋后,添加圖片關(guān)聯(lián)。

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))

這樣簡(jiǎn)單粗暴,也容易理解。這里記錄下。

以上這篇django多文件上傳,form提交,多對(duì)多外鍵保存的實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Django 使用easy_thumbnails壓縮上傳的圖片方法

    Django 使用easy_thumbnails壓縮上傳的圖片方法

    今天小編就為大家分享一篇Django 使用easy_thumbnails壓縮上傳的圖片方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-07-07
  • Python中進(jìn)程和線程的區(qū)別詳解

    Python中進(jìn)程和線程的區(qū)別詳解

    這篇文章主要介紹了Python中進(jìn)程和線程的區(qū)別詳解,需要的朋友可以參考下
    2017-10-10
  • PyTorch模型的保存與加載方法實(shí)例

    PyTorch模型的保存與加載方法實(shí)例

    Pytorch保存模型其實(shí)非常簡(jiǎn)單,下面這篇文章主要給大家介紹了關(guān)于PyTorch模型的保存與加載的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • python向json中追加數(shù)據(jù)的兩種方法總結(jié)

    python向json中追加數(shù)據(jù)的兩種方法總結(jié)

    JSON用來(lái)存儲(chǔ)和交換文本信息,比xml更小/更快/更易解析,下面這篇文章主要給大家介紹了關(guān)于python向json中追加數(shù)據(jù)的兩種方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-05-05
  • 如何基于Python爬取隱秘的角落評(píng)論

    如何基于Python爬取隱秘的角落評(píng)論

    這篇文章主要介紹了如何基于Python爬取隱秘的角落評(píng)論,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 對(duì)django中foreignkey的簡(jiǎn)單使用詳解

    對(duì)django中foreignkey的簡(jiǎn)單使用詳解

    今天小編就為大家分享一篇對(duì)django中foreignkey的簡(jiǎn)單使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-07-07
  • 詳解Python并發(fā)編程之從性能角度來(lái)初探并發(fā)編程

    詳解Python并發(fā)編程之從性能角度來(lái)初探并發(fā)編程

    這篇文章主要介紹了詳解Python并發(fā)編程之從性能角度來(lái)初探并發(fā)編程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • python項(xiàng)目運(yùn)行導(dǎo)致內(nèi)存越來(lái)越大的原因詳析

    python項(xiàng)目運(yùn)行導(dǎo)致內(nèi)存越來(lái)越大的原因詳析

    最近在跑python程序時(shí),出現(xiàn)占用的內(nèi)存不斷增加的情況,下面這篇文章主要給大家介紹了關(guān)于python項(xiàng)目運(yùn)行導(dǎo)致內(nèi)存越來(lái)越大的原因詳析,本文通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11
  • python解析yaml文件過(guò)程詳解

    python解析yaml文件過(guò)程詳解

    這篇文章主要介紹了python解析yaml文件過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • django 實(shí)現(xiàn)編寫控制登錄和訪問(wèn)權(quán)限控制的中間件方法

    django 實(shí)現(xiàn)編寫控制登錄和訪問(wèn)權(quán)限控制的中間件方法

    今天小編就為大家分享一篇django 實(shí)現(xiàn)編寫控制登錄和訪問(wèn)權(quán)限控制的中間件方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01

最新評(píng)論