如何使用django-import-export将数据从csv导入模型?

时间:2017-03-30 14:36:59

标签: python django django-import-export

我已经对django-import-export进行了一些研究,但我发现的大多数例子都是使用django admin .. 我试图从我的模板导入数据到django模型(点击按钮时会出现一个模态选择文件位置,然后提交),

我感到迷茫,我不知道如何开始......

这是我的模特:

class Musician(models.Model):
    first_name = models.CharField(max_length=50)
    last_name = models.CharField(max_length=50)
    instrument = models.CharField(max_length=100) 

有人可以通过采取以下步骤来指导我吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

我没有使用过django-import-export,但是使用python的内置csv模块写一个用于生成CSV的视图并不困难。

Django文档也有outputting csv部分。

以下是基于docs中提供的示例的代码段:

import csv
from django.http import HttpResponse
from django.views.generic import View

class CsvExportView(View):

    def get(self, request):
        # create a response object
        response = HttpResponse(content_type='text/csv')
        # assign a filename for csv
        response['Content-Disposition'] = 'attachment; filename="{}"'.format("filename.csv")
        wr = csv.writer(response, dialect='excel')
        # get queryset
        queryset = Musician.objects.all()
        # write every queryset to response object
        for obj in queryset:
            row = [obj.first_name, obj.last_name, obj.instrument]
            wr.writerow(row)
        # return response object
        return response