Как экспортировать отфильтрованные данные в django
Я использую представление на основе классов для поиска таких данных и хочу экспортировать результаты поиска. Вывод осуществляется из поиска по двум датам. Я использую следующий код:
class expenses_list(ListView):
model = EXPENSES
template_name = 'cashes/expenses_list.html'
paginate_by=10
def get_queryset(self):
filter_val1=self.request.GET.get("filter1","")
filter_val2=self.request.GET.get("filter2","")
order_by=self.request.GET.get("orderby","-date_of_operation")
if filter_val1!="" and filter_val2!="":
reqo=EXPENSES.objects.filter(Q(created_at__range=
[filter_val2,filter_val1])).order_by(order_by)
else:
reqo=EXPENSES.objects.filter().order_by(order_by)
return reqo
def get_context_data(self,**kwargs):
context=super(expenses_list,self).get_context_data(**kwargs)
context["filter1"]=self.request.GET.get("filter1","")
context["filter2"]=self.request.GET.get("filter2","")
context["orderby"]=self.request.GET.get("orderby","id")
context["all_table_fields"]=EXPENSES._meta.get_fields()
return context
и у меня есть это как интерфейс введите здесь описание изображения
следующий код экспорта не работает, так как значения полей даты являются пустыми
def exporexpensescsv(request,**kwargs):
filter_val1=request.GET.get("filter1")
filter_val2=request.GET.get("filter2")
print(filter_val1)
print(filter_val2)
response=HttpResponse(content_type='text/csv')
response['Content-Disposition'] = 'attachment; filename=expenses' +
str(datetime.datetime.now())+'.csv'
writer = csv.writer(response)
writer.writerow(['Categoty','Beneficiary','Description','Operation
Date','Amount','Account Number','Paymrnt Date','Status'])
expes = EXPENSES.objects.filter(Q(created_at__range=[filter_val1,filter_val2]))
# expes = EXPENSES.objects.all()
for exp in expes:
writer.writerow([exp.category,exp.beneficiary,exp.description,
exp.date_of_operation,exp.amount,exp.account_number,exp.payment_date,
exp.status])
return response
но когда я хочу экспортировать с expes = EXPENSES.objects.all(), это работает хорошо. Помогите, чтобы можно было экспортировать отфильтрованные данные.