django 导入 xls

2016-01-24 14:32:11 +08:00
 askask

我直接 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 。

哪位大神帮忙解读下。问题出哪了。

3669 次点击
所在节点    Django
6 条回复
stillwater
2016-01-24 20:12:35 +08:00
file upload handler 忘了设置了吧?
askask
2016-01-25 08:59:53 +08:00
@stillwater 在哪设置的呀。
askask
2016-01-25 09:06:46 +08:00
@stillwater 已找到 我试试。
askask
2016-01-25 09:25:53 +08:00
@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 的数据如何导入啊。
askask
2016-01-25 11:20:51 +08:00
@askask 已解决 字段名写错了
zonghua
2016-03-17 17:07:52 +08:00
你用的是什么库?我用 lxml 编译出错,出现各种问题。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/253012

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX