django-import-export外部管理员 [英] django-import-export outside admin

查看:177
本文介绍了django-import-export外部管理员的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试实现简单的xls文件导入,并使用django-import-export保存到模型中. 不幸的是,这些文档仅涵盖了管理员集成. 我被困在我的示例代码中:

I am trying to implement a simple xls file import and save to a model using django-import-export. Unfortunately the docs only cover the admin integration. I am stuck here in my example code:

class UploadFileForm(forms.Form):
    file = forms.FileField()


class ExportSpec(resources.ModelResource):
    class Meta:
        model = Specialty

view:
def ca_import(request):
    if request.method == 'POST' and 'import_test' in request.POST:
        form = UploadFileForm(request.POST, request.FILES)
        if form.is_valid():
            filehandle = request.FILES['file']
            dataset = ???
            result = ExportSpec().import_data(dataset, dry_run=False,
                                          raise_errors=True,
                                          user=request.user)

了解此模块的人可以帮助我完成此通用示例的代码吗?

Can someone with understanding of this module help me complete the code for this generic example?

还是有一个通用示例在网上某处被窃取,而我却没有使用Google找到它?

Or is there a generic example snipped somewhere on the net which I did not find using google?

基于Alex的回答,我找到了一个可行的解决方案:

Based on Alex answer I was able to find a working solution:

def ca_import(request):
    if request.method == 'POST' and 'import_test' in request.POST:
        form = UploadFileForm(request.POST, request.FILES)
        if form.is_valid():
            file = form.cleaned_data['file']
            data = bytes()
            for chunk in file.chunks():
                data += chunk
            dataset = XLS().create_dataset(data)
            result = ExportSpec().import_data(dataset, dry_run=False, raise_errors=True, user=request.user)

推荐答案

您应使用Format.create_dataset()方法:

from import_export.formats.base_formats import XLS

def your_view():
    filehandle = form.cleaned_data['file']
    data = bytes()
        for chunk in import_file.chunks():
            data += chunk
    dataset = XLS().create_dataset(data)
    result = ExportSpec().import_data(...)

这篇关于django-import-export外部管理员的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆