0

编辑:

Q1 通过添加enctype="multipart/form-data" 到表单模板来解决。请对第二季度发表评论。

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)
4

1 回答 1

0

尝试直接从request.FILES对象传递文件。

w.importCsv(request.FILES['file'])
于 2012-09-12T12:38:49.703 回答