2016-09-29 8 views
0

私はそれを保存せずに解析する必要がある簡単なアップロードファイルにアクセスできません。ファイルは保存する必要がないので、モデルを作成していません。この状態の他のすべてのスレッドは、html形式のエンコーディングタイプ、名前タグがrequest.FILESが出現していない主な理由です - 私はこれらを扱っていますが、まだリクエストはありません。Django FileFieldは、フォーム出力要求でアップロードされたファイルを含まない

forms.py

class DataExportForm(forms.Form): 
    docfile = forms.FileField(label='Select a template',help_text='Extracted info will be returned') 

HTML

<html> 
<body> 
<form action="." method="post" enctype="multipart/form-data">{% csrf_token %} 

<tr><th><label for="id_docfile">Select a template:</label></th><td><input id="id 
_docfile" name="docfile" type="file" /> 
<button type="submit" name="action">Upload</button> 
<br /><span class="helptext">Zip file wil 
l be returned with data</span></td></tr> 
</form> 
</body> 
</html> 

views.py

if request.method=='POST':   
    form=DataExportForm(request.POST, request.FILES) 
    if form.is_valid(): 
     #Code runs OK till here but request.FILES does not exist. 
     groupList=extractTemplateNames(request.FILES['file'].read()) 

私はそれが私がかもしれ働い取得する場合、私は推測しますリクエストに含まれていないファイルを見つけてください。ファイル['file']ではなく、request.FILES ['docfile']にありますが、この時点ではrequest.FILESは存在しません。これを解決するためのヒントをいただければ幸いです。

答えて

1

おそらく、間違った名前を使用してファイルにアクセスしようとしているだけです。フォームのフィールド名はdocfileです。同じ名前のrequest.FILES配列にあります。

おそらく、にはfileがないというエラーメッセージを誤解している可能性があります。

そしてform.is_validはFILES配列に正しくアクセスします。そのため、フォームは有効であると考えられます。

0

欠落がrequest.FILESを探していたので、明らかに唯一の事[ 'DOCFILE']

ないrequest.FILES [ 'ファイル']。できます!これが誰かに役立つことを願っています

関連する問題