0
私はDjangoをかなり使い慣れていて、Djangoテンプレートを使用してファイルを配信したり、フォームからプッシュしたりしていません。DjangoテンプレートからCSVを作成してダウンロードする方法
私の目標は、これです:ユーザからのフォームで収集した情報を使用して
、私のDBを照会し、ユーザーにダウンロードされCSVを作成します。
これはテンプレートベースのページで可能ですか?
私はDjangoをかなり使い慣れていて、Djangoテンプレートを使用してファイルを配信したり、フォームからプッシュしたりしていません。DjangoテンプレートからCSVを作成してダウンロードする方法
私の目標は、これです:ユーザからのフォームで収集した情報を使用して
、私のDBを照会し、ユーザーにダウンロードされ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
それとも
あなたは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)
をインストール
ジャンゴ - クエリセット-CSVリスク利用をしたいいけない場合