我直接 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 。
哪位大神帮忙解读下。问题出哪了。
1
stillwater 2016-01-24 20:12:35 +08:00
file upload handler 忘了设置了吧?
|
2
askask OP @stillwater 在哪设置的呀。
|
3
askask OP @stillwater 已找到 我试试。
|
4
askask OP @stillwater 有个新的问题请教下。
1 、我导入的数据里面有一个字段是用的 ForeignKey 。 2 、导入的时候 group 那个字段我填写的是。数字 1 3 、提示 Cannot assign "1.0": "host.group" must be a "Group" instance. xls 实例内容如下: ip port group env 192.168.1.1 8080 1 www 像这种用了 ForeignKey 的数据如何导入啊。 |
6
zonghua 2016-03-17 17:07:52 +08:00 via iPhone
你用的是什么库?我用 lxml 编译出错,出现各种问题。
|