diff --git a/src/pretix/presale/views/order.py b/src/pretix/presale/views/order.py index 716f78391a..71abd762fc 100644 --- a/src/pretix/presale/views/order.py +++ b/src/pretix/presale/views/order.py @@ -1154,7 +1154,11 @@ class AnswerDownload(EventViewMixin, OrderDetailMixin, View): answid = kwargs.get('answer') token = request.GET.get('token', '') - answer = get_object_or_404(QuestionAnswer, orderposition__order=self.order, id=answid) + answer = get_object_or_404( + QuestionAnswer, + Q(orderposition__order=self.order) | Q(order=self.order), + id=answid, + ) if not answer.file: raise Http404() if not check_token(request, answer, token): @@ -1164,7 +1168,7 @@ class AnswerDownload(EventViewMixin, OrderDetailMixin, View): resp = FileResponse(answer.file, content_type=ftype or 'application/binary') resp['Content-Disposition'] = 'attachment; filename="{}-{}-{}-{}"'.format( self.request.event.slug.upper(), self.order.code, - answer.orderposition.positionid, + answer.orderposition.positionid if answer.orderposition else '', os.path.basename(answer.file.name).split('.', 1)[1] ) return resp