title: Attach generated CSV file to email and send with Django
body: <p>I need to generate a csv file based on the queryset result, attach the resulting file to an email as attachment and send. As you can see i need to iterate over the assigned_leads and write it to a file so i thought yield would do the trick. Now when i run the code i receive the email with attachment with below message instead of the rows i expect. If i use return i get the one row from the queryset result.</p>
  
  <pre><code>&lt;generator object data at 0x7f5e508d93c0&gt;
  
  def send_lead_reminder(request):
      usercompany = Listing.objects.filter(submitted_by=request.user)
      assigned_leads = lead.objects.filter(assigned_to__in=usercompany).distinct() 
      def data():
          csvfile=StringIO.StringIO()
          csvwriter =csv.writer(csvfile)
          for leads in assigned_leads:
              csvwriter.writerow([leads.business_name, leads.first_name, leads.last_name, leads.email, leads.phone_number,leads.address, leads.city, leads.state, leads.zipcode, leads.submission_date, leads.time_frame, leads.comments])
               yield csvfile.getvalue()
      message = EmailMessage("Hello","Your Leads","myemail@gmail.com",["myemail@gmail.com"])
      message.attach('invoice.csv', data(), 'text/csv')
      #message.to="myemail@gmail.com"
      message.send()
      return HttpResponseRedirect('/')
  </code></pre>