html 및 csv download의 두 가지 방법으로보기의 내용을 표시하려고합니다. 내가 할 수 있었던 유일한 방법은 두 가지 다른보기를 사용하는 것이 었는데, 하나는 HTML 프리젠 테이션을위한 것이고 다른 하나는 CSV를위한 것이다. 이것은 내 코드를 복제하고보다 우아한 솔루션을 찾고 있습니다. 제안 사항이 있으십니까? 당신이 http://yourserver/myview?type=csv
같은 URL에 액세스하는 경우는 CSV 부분을 렌더링 URL에 매개 변수를 사용하고하나의보기에서 두 개의 템플릿 사용
def myview(request) :
type = request.GET.get('type', 'html')
# do processing
if type == 'html':
# return html
else if type == 'csv':
# return 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
샘플 코드하시기 바랍니다 – catherine