django - using two templates from one view -
i trying present content view in 2 ways: html , csv download. way able use 2 different views, 1 html presentation , 1 csv. duplicates code , looking more elegant solution. suggestions?
here sample code:
# 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']) member in member_list: fields = [member.name, member.member_type, member.room] writer.writerow(fields) return member_list
you can use parameter in url , implement view like
def myview(request) : type = request.get.get('type', 'html') # processing if type == 'html': # return html else if type == 'csv': # return csv if access url http://yourserver/myview?type=csv render csv part of view. when url http://yourserver/myview accessed return html part of view.
Comments
Post a Comment