Вы хотите создать PDF на стороне сервера, вернуть его клиенту, не сохраняя PDF (например, в S3)?
Да, это возможно, вы создаете PDF-файл в памяти, используя
buffer = io.BytesIO()
myPDF = canvas.Canvas(buffer, pagesize=letter)
Затем, после создания вашего PDF-файла, вы сохраняете его, используя
myPDF.save()
buffer.seek(0)
Затем, когда вы готовы вернуть PDF-файл в качестве ответа, вы можете вернуть его с помощью:
response = HttpResponse(buffer, content_type='application/pdf')
response['Content-Disposition'] = 'attachment; filename="{}"'.format("myFile.pdf")
return response