ビューからコンテンツを表示しようとしています。htmlとcsvのダウンロードです。私がそれを行うことができた唯一の方法は、2つの異なるビューを使用することでした。1つはhtmlプレゼンテーション用で、もう1つはcsv用です。これは私のコードを複製し、私はよりエレガントな解決策を探しています。助言がありますか?
サンプルコードは次のとおりです。
# views.py
[...]
def member_list(request):
member_list = Member.objects.all()
return render_to_response("member_list.html",
{'member_list':member_list)
def member_csv_list(request):
member_list = Member.objects.all()
csv_list = HttpResponse(content_type='text/csv')
csv_list['Content-Disposition'] = 'attachment; filename="member_list.csv"'
writer = csv.writer(csv_list)
writer.writerow(['Name', 'Member Type', 'Rooms'])
for member in member_list:
fields = [member.name, member.member_type, member.room]
writer.writerow(fields)
return member_list