无法使用Python/Django上载CSV文件
我正在尝试使用Django上传csv文件,并计划解析csv文件。但此代码无法上载文件,并继续转到else条件。这个代码有什么问题?谢谢无法使用Python/Django上载CSV文件,python,django,csv,Python,Django,Csv,我正在尝试使用Django上传csv文件,并计划解析csv文件。但此代码无法上载文件,并继续转到else条件。这个代码有什么问题?谢谢 from django.shortcuts import render from django.shortcuts import render_to_response from django.template import RequestContext from django.http import HttpResponseRedirect from djang
from django.shortcuts import render
from django.shortcuts import render_to_response
from django.template import RequestContext
from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse
import csv
import codecs
from items.models import UploadFileForm
def handle_files(f):
reader = csv.DictReader(open(f))
for row in reader:
print row
def home(request):
if request.method == "POST":
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
handle_files(request.FILES['file'])
return HttpResponseRedirect('/workflow/')
else:
print form.errors
print request.FILES
return HttpResponseRedirect('/workflow/upload')
else:
form = UploadFileForm()
return render(request, 'template.html', {'formset': form})
template.html
<form action="" method="post" enctype="multipart/form-data">{% csrf_token %}
<input type="file" name="csv_file" />
<input type="submit" value="Upload" />
</form>
相反,您可以尝试(除非启用了验证,否则不需要检查表单是否有效):
缩进是否正确?在某些地方,你使用了2个空格,在其他地方使用了4个空格!还有哪种情况?您的列表中有2个。同时向我们展示您提交的html表单。@AbijithMg我已经修复了缩进,这是输入时的一个打字错误stackoverflow@gipsy这是与表单关联的else条件。是否有效()表单元素中是否有
enctype='multipart/form data'
?
from django import forms
class UploadFileForm(forms.Form):
title = forms.CharField(max_length=100)
file = forms.FileField()
def home(request):
if request.method == "POST":
if request.FILES:
handle_files(request.FILES['file'])
return HttpResponseRedirect('/workflow/')
else:
return HttpResponseRedirect('/workflow/upload')
else:
form = UploadFileForm()
return render(request, 'template.html', {'formset': form})