Python “文档”对象不是可下标的Django
我在上传excel文件并保存该文件时遇到此错误 My model.py文件Python “文档”对象不是可下标的Django,python,django,Python,Django,我在上传excel文件并保存该文件时遇到此错误 My model.py文件 class Document(models.Model): docfile = models.FileField(upload_to='documents/%Y/%m/%d') 在视图中,我正在将该文件保存到特定位置 views.py文件是 def excel(request): print "you in main" if request.method == 'POST': p
class Document(models.Model):
docfile = models.FileField(upload_to='documents/%Y/%m/%d')
在视图中,我正在将该文件保存到特定位置
views.py文件是
def excel(request):
print "you in main"
if request.method == 'POST':
print "you in post"
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
newdoc = Document(docfile = request.FILES['docfile'])
path = os.path.join(settings.MEDIA_ROOT, newdoc)
print path
print "you in"
newdoc.save()
wb = xlrd.open_workbook(path)
sh = wb.sheet_by_index(0)
c = 1
while c < len(sh.col(0)):
first = sh.col_values(0)[c]
second = sh.col_values(1)[c]
c=c+1
return HttpResponseRedirect(reverse('upload.views.excel'))
else:
form = UploadFileForm() # A empty, unbound form
documents = Document.objects.all()
return render_to_response('property/list.html',{'documents': documents, 'form': form},context_instance=RequestContext(request))
请帮我解决这个问题您的问题在这里:
path = os.path.join(settings.MEDIA_ROOT, newdoc)
^newdoc是一个模型实例,您不希望模型本身成为您路径的一部分-您希望上传的文件路径在那里,因此:
path = os.path.join(settings.MEDIA_ROOT, newdoc.docfile)
我得到的错误是'FieldFile'对象没有属性'filename',所以只需要newdoc.docfile,或者如果有合适的属性print dirnewdoc.docfile,则打印内容docfile
path = os.path.join(settings.MEDIA_ROOT, newdoc)
path = os.path.join(settings.MEDIA_ROOT, newdoc.docfile)