@kondratev-ad

Как перенаправить пользователя после загрузки файла в Django?

В Django admin сделал страницу с import CSV. На этой странице выбирается файл и есть кнопка загрузки.

62e8e031bd4b6406080435.png

При нажатии кнопки, во views производятся действия и формируется новый отчетный файл CSV, который я отправляю пользователю. Мне нужно чтобы после загрузки файла, пользователя перенаправляло на предыдущую страницу.
HTML:
<div>
  <form action="." method="POST" enctype="multipart/form-data">
            {{ form.as_p }}
            {% csrf_token %}
       <button type="submit">Download CSV</button>
  </form>
</div>

Views:
def import_csv(self, request):
      if request.method == "POST":
          csv_file = request.FILES["csv_file"]
          decoded_file = csv_file.read().decode('utf-8')
          io_string = io.StringIO(decoded_file)
          reader = csv.reader(io_string)
          complite_data = []
          for row in reader:
              complite_data.append(row)
          response = HttpResponse(
              content_type='text/csv',
              headers={
                  'Content-Disposition': 'attachment; filename="somefilename.csv"'},
          )
          writer = csv.writer(response)
          for data in complite_data:
              writer.writerow(data)
          return response


Как сделать перенаправление пользователя после загрузки файла?
  • Вопрос задан
  • 237 просмотров
Пригласить эксперта
Ответы на вопрос 1
Alexeytur
@Alexeytur
Если мне не изменяет память, нельзя в одном HTTP-ответе вернуть файл и сделать редирект. Можно генерить файл и ссылку на него, а возвращать редирект на эту ссылку.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы