2016-11-24 7 views
1

の場合は常に0を返します。ジャンゴform.is_validは()私は(2つのその他の形態と一緒に)フォームを、次のしているファイルアップロード

class UploadFileForm(forms.Form): 
    file = forms.FileField() 

次の私のhtmlです:

<div class="panel panel-danger"> 
       <div class="panel-heading"> 
        <h3 class="panel-title">Panel title</h3> 
       </div> 
       <div class="panel-body"> 
        <form action="" method="POST" role="form" enctype="multipart/form-data"> 
         {% csrf_token %} 
         <legend>Upload a file: </legend> 

         <div class="form-group"> 
          <input type="file" name="file" class="form-control" id="" placeholder="Input field"> 
         </div> 



         <button type="submit" class="btn btn-primary">Submit</button> 
        </form> 
       </div> 
      </div> 

ファイル取り扱いが行われます。

if request.method == 'POST': 
    print "I am in request." 
    print request.FILES['file'] 
    # create a form instance and populate it with data from the request: 
    formName = NameForm(request.POST) 
    formHandle = HandleForm(request.POST) 
    fileForm = UploadFileForm(request.POST) 
    successMessages = [] 
    failureMessages = [] 
    # check whether it's valid: 
    # 
    if fileForm.is_valid(): 
     print "file is uploaded." 
     print request.FILES['file'] 
    else: 
     print "File form is not set." 

常に他の条件がrequest.filesの値が設定されている場合でも、実行されます。私は間違って何をしていますか?

+1

マニュアルを読む:フォーム= UploadFileForm(request.POST、request.FILES) https://docs.djangoproject.com/en/1.10/トピック/ http/file-uploads/ – opalczynski

+0

時々、私たちはマニュアルを読むのを忘れるほどのコード作成に巻き込まれることがあります。途中でありがとう。 – learner

+1

ええと:)それは本当です:) – opalczynski

答えて

3

あなたは次のようにrequest.FILESを追加する必要があります。

fileForm = UploadFileForm(request.POST, request.FILES) 
+0

どうした、どうして私はこれを見逃しましたか?とにかくありがとう。 – learner

+0

問題はありませんが、時々そのようなことを忘れるのは普通です。あなたはあなたの質問の答えとしてそれを受け入れることができます:) – ettanany

関連する問題