3

単純な xls ファイルのインポートを実装し、django-import-export を使用してモデルに保存しようとしています。残念ながら、ドキュメントは管理統合のみをカバーしています。私は私のサンプルコードでここに行き詰まっています:

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)

このモジュールを理解している誰かが、この一般的な例のコードを完成させるのを手伝ってくれますか?

または、Googleを使用して見つけられなかったネット上のどこかに切り取られた一般的な例がありますか?

編集:

アレックスの回答に基づいて、実用的な解決策を見つけることができました:

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)
4

1 に答える 1

3

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(...)
于 2016-01-12T09:24:06.507 に答える