Django: Загрузка файла как фоновая задача на машине клиента

У меня есть рабочий пример загрузки файла, который работает нормально:

def download_file_view(request):
    output = download_file()
    response = HttpResponse(output, content_type='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
    response['Content-Disposition'] = f'attachment; filename=file.xlsx'
    return response


def download_file():
    output = io.BytesIO()
    workbook = xlsxwriter.Workbook(output)
    worksheet = workbook.add_worksheet()
    worksheet.write(0, 0, 'something')
    workbook.close()
    output.seek(0)
    return output

Но теперь я хочу, чтобы процесс загрузки продолжался как фоновая задача. Я сделал кое-что с помощью threading.Thread, но загрузка не происходит:

def download_file_background_view(request):
    t = threading.Thread(target=download_file_background)
    t.setDaemon(True)
    t.start()
    return redirect('/')


def download_file_background():
    output = io.BytesIO()
    workbook = xlsxwriter.Workbook(output)
    worksheet = workbook.add_worksheet()
    worksheet.write(0, 0, 'something')
    workbook.close()
    output.seek(0)
    response = HttpResponse(output, content_type='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
    response['Content-Disposition'] = f'attachment; filename=file.xlsx'
    return response

Может ли кто-нибудь помочь мне, как запустить процесс загрузки в фоновом режиме и позволить пользователю заниматься другими делами в интернете?

Вернуться на верх