Directly serve invoice PDFs via Django

This commit is contained in:
Raphael Michel
2016-09-05 23:49:50 +02:00
parent f1495f242f
commit 78358c6cda
2 changed files with 8 additions and 4 deletions

View File

@@ -4,7 +4,7 @@ from itertools import groupby
from django.contrib import messages
from django.core.urlresolvers import reverse
from django.db.models import Q
from django.http import Http404, HttpResponseNotAllowed
from django.http import FileResponse, Http404, HttpResponseNotAllowed
from django.shortcuts import redirect, render
from django.utils.functional import cached_property
from django.utils.timezone import now
@@ -381,7 +381,9 @@ class InvoiceDownload(EventPermissionRequiredMixin, View):
'now. Please try again in a few seconds.'))
return redirect(self.get_order_url())
return redirect(self.invoice.file.url)
resp = FileResponse(self.invoice.file.file, content_type='application/pdf')
resp['Content-Disposition'] = 'attachment; filename="{}.pdf"'.format(self.invoice.number)
return resp
class OrderDownload(OrderView):

View File

@@ -4,7 +4,7 @@ from django.contrib import messages
from django.core.urlresolvers import reverse
from django.db import transaction
from django.db.models import Sum
from django.http import Http404
from django.http import FileResponse, Http404
from django.shortcuts import redirect
from django.utils.functional import cached_property
from django.utils.timezone import now
@@ -507,4 +507,6 @@ class InvoiceDownload(EventViewMixin, OrderDetailMixin, View):
'now. Please try again in a few seconds.'))
return redirect(self.get_order_url())
return redirect(invoice.file.url)
resp = FileResponse(invoice.file.file, content_type='application/pdf')
resp['Content-Disposition'] = 'attachment; filename="{}.pdf"'.format(invoice.number)
return resp