2013-11-15 88 views
1

當您將表單數據傳遞給表單方法時,您通常會調用方法本身,從視圖中的表單 .data ['whateverdata']更改對象。到self .data ['whateverdata']。然而,當傳遞請求文件(在我的情況下是2)時,Self似乎也沒有工作,request.FILES ['whateverdata']也沒有工作。有關我如何安排這一點的任何想法。將多個請求文件傳遞給視圖中的方法?

VIEW

def upload(request): 
    if request.method == "POST": 
     form = VastTagForm(request.POST, request.FILES) 
     if form.is_valid(): 
      form.save() 
      return HttpResponse("SUCCESS") 
     else: 
      return HttpResponse("form isn't valid") 

形式方法

def save(self): 
    objs = VastTag.objects.create(media_impression=self.data['media_impression'], 
      media_file=self.FILES['media_file'], 
      companion_file=self.FILES['companion_file']) 
+0

一旦你穿過它'is_valid()',我想'self.media_file'應該正常工作。 – karthikr

+0

表單有效。 .media_file方法不存在,除非你的意思是self.data ['media_file'],但這也不起作用 – Dap

回答

1

不知道這是最好的做法,但它能夠完成任務。我使save函數接受另一個參數,並在視圖中訪問這些文件時;我將它傳遞給保存功能。

VIEW

def upload(request): 
    if request.POST: 
     form = VastTagForm(request.POST, request.FILES) 
     if form.is_valid(): 
      form.save(request.FILES) 
      return HttpResponse("SUCCESS") 
     else: 
      return HttpResponse("form isn't valid") 

FORM METHOD

def save(self, files): 
    objs = VastTag.objects.create(media_impression=self.data['media_impression'], 
      media_file=files['media_file'], 
      companion_file=files['companion_file']) 
相關問題