Django: перенаправление на другую страницу после запуска загрузки - PullRequest
1 голос
/ 09 июля 2019

Я бы хотел, чтобы пользователь был перенаправлен на другую страницу после запуска загрузки его файла. Как мне это сделать? Ниже мой код о том, как происходит загрузка. В качестве альтернативы, как я могу проанализировать фрейм данных, созданный на первой веб-странице, на веб-странице, которую перенаправляет пользователь, чтобы затем запустить загрузку? Любая помощь приветствуется. Спасибо!

from django.shortcuts import render
from django.http import HttpResponse
from .forms import *
from .functions import *
from . import models

def index(request):
    if request.method == 'POST':
        # upload file
        file=request.FILES['excelfile']
        df=createDF(file)

        # write to xlsx and trigger download
        response = HttpResponse(content_type='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
        response['Content-Disposition'] = 'attachment; filename="somefile.xlsx")
        df.to_excel(response, index=False)
        return response
    # render form for upload
    return render(request, 'webpage/index.html')

1 Ответ

0 голосов
/ 09 июля 2019

Вы можете создать представление для упомянутого вами фрейма данных, зарегистрировать это представление в файле urls.py и использовать это новое представление в методе перенаправления после того, как что-то произойдет, например, после использования нажмите кнопку загрузки, перенаправьте на новую страницу с датафрейм и начать загрузку или, возможно, загрузка уже началась в последнем представлении.

def dataframe(request):
    # code to generate your dataframe, not sure how it works with your data.
    return render(request, 'your_dataframe_template.html')

Внутри urls.py

urlpatterns = [
    path('dataframeurl/', views.dataframe, name='dataframecoolname') # use some better name in the name argument 
]

Теперь вы можете использовать name аргумент внутри представления с методом перенаправления.

# the redirect would be something like this
def download_view(request):
    # some logic you want, then...
    return redirect(dataframecoolname) # must be the same name argument you used in the url
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...