На самом деле существует очень концептуальная основа того, почему это не было реализовано. Это комбинация в основном трех аспектов:
Эти 3 вместе означают, что к тому моменту, когда у вас есть текстовое содержимое, вы не сможете вернуться к содержащему элементу, и вы не можете текст. Это, вероятно, значимо, поскольку спуск только позволяет синхронное отслеживание контекста и синтаксический анализ SAX. Восходящие или другие селекторы с участием других осей вносят потребность в более сложных обходах или аналогичных решениях, которые значительно усложнили бы применение CSS к DOM.
Вы пытаетесь загрузить файл с помощью метода HTTP POST
, я не думаю, что это хороший способ. Попробуйте HTTP GET
для загрузки. Если вы хотите предоставить дополнительные аргументы (полезная нагрузка в методе POST), вы можете сделать это, используя Query Parameter
как /api/end/point/?param=value1¶m2=value2
. Итак, попробуйте следующий фрагмент,
@api_view(['GET'])
def download_file(request):
if request.method == 'GET':
filename = 'file.xlsx'
file_full_path = "src/{0}".format(filename)
with open(file_full_path, 'rb') as f:
file = f.read()
response = HttpResponse(file, content_type="application/xls")
response['Content-Disposition'] = "attachment; filename={0}".format(filename)
response['Content-Length'] = os.path.getsize(file_full_path)
return response
return Response(status=status.HTTP_400_BAD_REQUEST)