0
我是相当新的Django,并没有做很多与服务文件,并只有拉和从表单使用Django模板推送。如何创建和从Django模板下载CSV
我的目标是:
使用来自用户的形式收集到的信息,请查询我的数据库,并创建一个CSV,将下载到用户。
这是可能的基于模板的页面?
我是相当新的Django,并没有做很多与服务文件,并只有拉和从表单使用Django模板推送。如何创建和从Django模板下载CSV
我的目标是:
使用来自用户的形式收集到的信息,请查询我的数据库,并创建一个CSV,将下载到用户。
这是可能的基于模板的页面?
使用默认的Django的csv.writer
# In this example csv_request is the request model to save how many CSV requests came via your form
# DataForCSVModel is the Model you want to download as CSV
import csv
from django.http import HttpResponse
def some_view(request):
# your business logic or whatever goes here
if form.is_valid():
csv_request = form.save(commit=False)
csv_request.requested_by = request.user
csv_request.requested_date= timezone.now()
csv_request.save()
response = HttpResponse(content_type='text/csv')
response['Content-Disposition'] = 'attachment; filename="csv_filename.csv"'
writer = csv.writer(response)
[writer.writerow() for a in DataForCSVModel.objects.filter(<use csv_request object's data to filter>).values_list('id', 'name', 'place')]
# Or if you want to write something else write like this
# writer.writerow(['hello', 'world', 'Foo', 'Bar', 'Baz'])
return response
或者
如果你不想冒这个险使用Django的查询集-CSV
安装https://github.com/azavea/django-queryset-csv
from djqscsv import render_to_csv_response
def csv_view(request):
qs = Foo.objects.filter(bar=True).values('id', 'bar')
return render_to_csv_response(qs)