暈,我試圖用filefield上傳文件。但我總是失敗。當執行語句form.errors.as_data()
時,瀏覽器返回'tempfile'。我已經試圖從django文檔和一些django參考找到解決方案。但是,仍然無法解決它。 (難以上傳文件到FileField,表格無效
這裏是我的view.py
def dataprocessing(request):
if request.method == 'POST':
form = DocumentForm(request.POST, request.FILES)
if form.is_valid():
import pdb; pdb.set_trace()
newdoc = Document(docfile=request.FILES['myfile'])
newdoc.save()
#Redirect to the dataprocessing after POST
#return render(request, 'dataprocessing.html')
return HttpResponse("success")
else:
return HttpResponse(form.errors.as_data())
else:
import pdb; pdb.set_trace()
form = DocumentForm() #A empty, unbound form
return render(request, 'dataprocessing.html', {'form': form})
models.py
class Document(models.Model):
docfile = models.FileField(upload_to='documents/%Y/%m/%d')
forms.py
class DocumentForm(forms.Form):
tempfile = forms.FileField()
而且dataprocessing.html
<form method="post" enctype="multipart/form-data" action="{% url "dataprocessing" %}">
<div class="form-group">
<label for="up">Input Data</label> {% csrf_token %}
<input type="file" name=myfile class="filestyle" data-buttonName="btn-primary" data-buttonBefore="true" data-size="sm" accept="application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
id="up">
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary btn-block">Upload Data</button>
<button type="button" class="btn btn-primary btn-block">Download Template</button>
</div>
</form>
請爲您的問題選擇一個更合適的標題。 –
你的模板不是上傳文件的字段'tempfile',而是'myfile'(以及應該是一個字符串:'') – dirkgroten
嘗試學習使用調試工具,以便您可以檢查實際發佈的內容,使解決這類問題變得更加容易。例如。在代碼中使用'pdb'行來設置斷點,或使用django-debugger來檢查請求。 – dirkgroten