修改
通过将enctype="multipart/form-data"
添加到表单模板来解决Q1问题。请评论Q2。
Qn1:尝试读取通过Forms上传的csv文件时出现以下错误。例外可能在这一行。
records = csv.reader(f)
不确定要通过什么。请参阅下面的代码。
Qn2:可以在模型中进行csv处理(csv用于上传域数据,因此验证/并作为域对象保留)。我是Django / Python的新手,到目前为止我看到的大多数示例在模型中没有太多方法。这与我以前捕获与模型相关的所有业务逻辑的位置略有不同。想知道django中的惯用法。
Django Version: 1.4.1
Exception Type: TypeError
Exception Value:
argument 1 must be an iterator
def upload(request):
if request.method == 'POST':
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
w = Testme()
w.importCsv(form.cleaned_data["file"])
return HttpResponseRedirect('/')
else:
form = UploadFileForm()
return render_to_response('setup.html', {'form': form},context_instance=RequestContext(request))
class UploadFileForm(forms.Form):
title = forms.CharField(required=False)
file = forms.FileField(required=False)
class Testme(models.Model):
code = models.IntegerField()
ctu = models.IntegerField()
address = UsAddress
def importCsv(self, f):
records = csv.reader(f)
for line in records:
logger.debug(line)
答案 0 :(得分:0)
尝试直接从request.FILES
对象传递文件。
w.importCsv(request.FILES['file'])