我直接 clone http://django-excel.readthedocs.org 里面的项目下来是没有问题,可以导入 xls 。
但是把 views.py 里面的 import_data 代码拷贝到我自己的项目中,提示
“'InMemoryUploadedFile' object has no attribute 'save_book_to_database'”
原 import_data 代码如下:
class UploadFileForm(forms.Form):
file = forms.FileField()
def import_data(request):
if request.method == "POST":
form = UploadFileForm(request.POST,
request.FILES)
if form.is_valid():
print dir(request.FILES['file'])
request.FILES['file'].save_book_to_database(
models=[Question,],
mapdicts=[
['question_text', 'pub_date', 'slug'],]
)
return HttpResponse("OK123", status=200)
else:
return HttpResponseBadRequest()
else:
form = UploadFileForm()
return render_to_response(
'upload_form.html',
{
'form': form,
'title': 'Import excel data into database example',
'header': 'Please upload sample-data.xls:'
},
context_instance=RequestContext(request))
我放入自己 项目后修改为:
class UploadFileForm(forms.Form):
file = forms.FileField()
def import_data(request):
if request.method == "POST":
form = UploadFileForm(request.POST,
request.FILES)
if form.is_valid():
print dir(request.FILES['file'])
request.FILES['file'].save_book_to_database(
models=[host,],
mapdicts=[
['ip', 'port', 'group','env'],]
)
return HttpResponse("OK123", status=200)
else:
return HttpResponseBadRequest()
else:
form = UploadFileForm()
return render_to_response(
'upload_form.html',
{
'form': form,
'title': 'Import excel data into database example',
'header': 'Please upload sample-data.xls:'
},
context_instance=RequestContext(request))
就修改了 models 和 mapdicts 。
哪位大神帮忙解读下。问题出哪了。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.