Sim*_*eth 5 csv django file-upload
我试图找出如何读取上传的CSV而不将其保存到磁盘...
我被困在form.cleaned_data ['file'].读...我似乎没有得到任何输出
如果我只能弄清楚如何获得输出,那么我可以编写一个适当的函数来处理数据行.
#addreport.html
<form enctype="multipart/form-data" method="post" action="/products/addreport/"> {%csrf_token %}
<table>
{{ form.as_table }}
</table>
<input type="submit" value="Submit" />
Run Code Online (Sandbox Code Playgroud)
#forms.py
from django import forms
#
class UploadFileForm(forms.Form):
file = forms.FileField()
Run Code Online (Sandbox Code Playgroud)
-
# views.py
def addreport(request):
if request and request.method == "POST":
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
print form.cleaned_data['file'].read()
else:
print form.errors
print request.FILES
#form = UploadFileForm()
else:
form = UploadFileForm()
return render_to_response('products/addreport.html', {'form': form},context_instance=RequestContext(request))
Run Code Online (Sandbox Code Playgroud)
我的一个项目的设置非常类似.你的表格有干净的方法吗?
否则我认为你可以从中读取文件form.cleaned_data['file']:
import csv
def addreport(request):
if request.method == "POST":
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
reader = csv.reader(form.cleaned_data['file'])
for row in reader:
print row
else:
print form.errors
print request.FILES
#form = UploadFileForm()
else:
form = UploadFileForm()
return render(request, 'products/addreport.html', {'form': form})
Run Code Online (Sandbox Code Playgroud)
如果它不起作用,请尝试request.FILES['file']直接使用而不是form.cleaned_data['file'].
希望能帮助到你.
| 归档时间: |
|
| 查看次数: |
3474 次 |
| 最近记录: |