Python Django csv错误和编写业务逻辑的最佳位置
编辑: Q1通过向表单模板添加Python Django csv错误和编写业务逻辑的最佳位置,python,django,Python,Django,编辑: Q1通过向表单模板添加enctype=“multipart/form data”来解决。请对第二季度发表评论 Qn1:我在尝试读取通过表单上传的csv文件时遇到以下错误。例外情况可能在这一行 records = csv.reader(f) 不知道该通过什么。请参阅下面的代码 Qn2:是否可以在模型中进行csv处理(csv用于上载域数据,因此验证/并作为域对象持久化)。我是Django/Python新手,到目前为止,我看到的大多数示例在模型中没有太多方法。这与我以前所说的有点不同,我过去
enctype=“multipart/form data”
来解决。请对第二季度发表评论
Qn1:我在尝试读取通过表单上传的csv文件时遇到以下错误。例外情况可能在这一行
records = csv.reader(f)
不知道该通过什么。请参阅下面的代码
Qn2:是否可以在模型中进行csv处理(csv用于上载域数据,因此验证/并作为域对象持久化)。我是Django/Python新手,到目前为止,我看到的大多数示例在模型中没有太多方法。这与我以前所说的有点不同,我过去用它来捕获与模型相关联的所有业务逻辑。想知道django中的惯用用法
例外情况:
视图:
表格:
型号:
尝试直接从
request.FILES
对象传递文件
w.importCsv(request.FILES['file'])
为什么要在models类中编写方法
importsv
?顺便说一句,您应该使用request.FILES['file']
:
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)
w.importCsv(request.FILES['file'])