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

Popular posts from this blog

authentication - Mongodb revoke acccess to connect test database -

r - Update two sets of radiobuttons reactively - shiny -

ios - Realm over CoreData should I use NSFetchedResultController or a Dictionary? -