Django:Error';str';对象没有属性';获取';使用csv文件填充模型时
我试图用如下csv文件填充模型:Django:Error';str';对象没有属性';获取';使用csv文件填充模型时,django,file,error-handling,Django,File,Error Handling,我试图用如下csv文件填充模型: if form.is_valid(): #form.save() print("form1 valid") csvfile = request.FILES['myfilebase'] print(csvfile) try: f=open(csvfile,"rt") #print(csvfile) my_data
if form.is_valid():
#form.save()
print("form1 valid")
csvfile = request.FILES['myfilebase']
print(csvfile)
try:
f=open(csvfile,"rt")
#print(csvfile)
my_data = csv.reader(f)
for row in my_data:
print(row)
except:
msg = "Cannot open file - is it CSV?"
print("not opened")
return msg
else:
print("not valide form")
但我得到了一个错误:
“str”对象没有属性“get”
这个问题出现在csvfile
变量中,因为当我用完整路径替换csvfile
时,我的代码工作得很好。从我的FileField
编辑以下是我的观点:
def clientsBase(request):
form = formFile(request.POST, request.FILES)
#csvfile = request.POST['myfilebase']
#print(csvfile)
print("entrer en clientsBase")
if form.is_valid():
#form.save()
print("form1 valid")
csvfile = request.FILES['myfilebase']
print(csvfile)
try:
f=open(csvfile,"rt")
#print(csvfile)
my_data = csv.reader(f)
for row in my_data:
print(row)
except:
msg = "Cannot open file - is it CSV?"
print("not opened")
return msg
else:
print("not valide form")
return redirect('/veentes/')
我如何处理这个错误有什么帮助吗。非常感谢您没有显示所有代码,但这大概是在视图中。视图总是需要返回HttpResponse;您返回的是一个字符串msg。我编辑了我的问题,我返回了一个重定向('/veentes/'),但在
块中,除了
之外,您返回了msg。现在我只在excep中打印了msg。我得到一个错误消息,它无法打开文件。为什么它不能打开它?因为request.FILES['myfilebase']
不是文件名,而是内存中的文件。您应该直接将其传递给csv.reader
,而不是调用open()。此外,您不应使用裸except语句;您应该只捕获您知道如何处理的错误。我理解,谢谢,但即使我这样做,我也得到了错误迭代器应该返回字符串,而不是字节(您是否以文本模式打开文件?)。我猜在对csvfile的行进行迭代时会发生这种情况