【问题标题】:How to import data from csv to models using django-import-export?如何使用 django-import-export 将数据从 csv 导入模型?
【发布时间】:2017-03-31 03:39:00
【问题描述】:
我对 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)
有人可以通过给出步骤来指导我吗?
提前致谢!
【问题讨论】:
标签:
python
django
django-import-export
【解决方案1】:
我没有使用过 django-import-export,但是使用 python 的内置 csv 模块为 CSV 生成编写视图并不困难。
Django 文档也有一个关于outputting csv 的部分。
以下是基于文档中提供的示例的 sn-p:
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