Как сгенерировать файл CSV с Django (динамическое содержимое c) - PullRequest
0 голосов
/ 30 января 2020

, поэтому у меня есть базовое представление этого класса модели

class ReportView(ListView):
  model = Pv 

  template_name = 'pv/report.html' 

  context_object_name = 'all_search_results' 

  def get_queryset(self):
     result = super(ReportView, self).get_queryset()
     query = self.request.GET.get('search') 
     today = datetime.datetime.now()
     if query:
         if query == "Withholding":
             postresult = Pv.objects.filter(Withholding_tax__gt =0.00,Date_recieved__year=today.year) 
         elif query =="Non-Withholding":
             postresult = Pv.objects.filter(Withholding_tax__lte =0.00,\ 
                                            Date_recieved__year=today.year)
         elif query =="Accountable-Impress":
             postresult = Pv.objects.filter(Acc_Impress__exact ='Yes',Date_recieved__year=today.year)
         elif query =="Non-Accountable-Impress":
             postresult = Pv.objects.filter(Acc_Impress__exact = 'No',Date_recieved__year=today.year)
         else:
             postresult = Pv.objects.all()
         result = postresult
     else:
         result = None
     return result  

Теперь моя проблема заключается в создании динамического c csv-файла на основе значения, хранящегося в переменной query . пожалуйста, любая помощь будет новичком в django. большое спасибо

1 Ответ

0 голосов
/ 30 января 2020
import csv

def getfile(request):  
    response = HttpResponse(content_type='text/csv')  
    respons`enter code here`e['Content-Disposition'] = 'attachment; filename="file.csv"'  
    employees = Employee.objects.all()  
    writer = csv.writer(response)  
    for employee in employees:  
        writer.writerow([employee.eid,employee.ename,employee.econtact])  
    return response  
...