Попытка выяснить, как правильно создать ссылку на скачивание CSV-файла в моем шаблоне.
Views.py
#this is the view that shows the html page (all queries work)
def admin_view(request, mysite):
context = dict()
context["mysite"] = mysite.upper()
group = whid.lower() + "-group"
user = request.user.get_username()
authorized = is_authorized(user, group)
end_time = timezone.now()
start_time = end_time.replace(day=1, hour=00, minute=00, second=00)
error_message = ("You are not authorized to be in this page.")
context['data'] = CheckIn.objects.filter(Date__range=(start_time, end_time))
today = datetime.datetime.now()
context['today'] = today
context['first_day'] = today.replace(day=1, hour=00, minute=1)
#Calling the csv function here
context['response'] = export_search_csv(start_time, end_time)
if (authorized):
return render(request, 'mykiosk/admin.html', context)
else:
return HttpResponse(error)
#function to grab and create csv
def export_search_csv(start_time, end_time):
data = CheckIn.objects.filter(Date__range=(start_time, end_time))
response = HttpResponse(content_type='text/csv')
response['Content-Disposition'] = 'attachment; filename="export.csv"'
writer = csv.writer(response)
writer.writerow(['id', 'EmpID', 'BarID', 'Username', 'Type', 'Liability', 'Date'])
for item in data:
writer.writerow([item.id, item.EmpID, item.BarID, item.Username, item.Type, item.Liability, item.Date])
return response
Шаблон
<a href="{{ response}}">export to csv</a>
Тогда все, что я получаю, это <HttpResponse status_code=200, "text/csv">
при попытке получить доступ к ссылке.Я что-то упустил, я просто не уверен, что.В соответствии с внутренними правилами компании, я также не могу использовать библиотеку djqscsv
.
Любая помощь приветствуется.