askask
V2EX  ›  Django

django 导入 xls

  •  
  •   askask · Jan 24, 2016 · 4438 views
    This topic created in 3788 days ago, the information mentioned may be changed or developed.

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

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

    6 replies    2016-03-17 17:07:52 +08:00
    stillwater
        1
    stillwater  
       Jan 24, 2016
    file upload handler 忘了设置了吧?
    askask
        2
    askask  
    OP
       Jan 25, 2016
    @stillwater 在哪设置的呀。
    askask
        3
    askask  
    OP
       Jan 25, 2016
    @stillwater 已找到 我试试。
    askask
        4
    askask  
    OP
       Jan 25, 2016
    @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
        5
    askask  
    OP
       Jan 25, 2016
    @askask 已解决 字段名写错了
    zonghua
        6
    zonghua  
       Mar 17, 2016 via iPhone
    你用的是什么库?我用 lxml 编译出错,出现各种问题。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4011 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 05:10 · PVG 13:10 · LAX 22:10 · JFK 01:10
    ♥ Do have faith in what you're doing.