Django:我可以使用 HttpResponseRedirect() 并为其提供要在此页面上呈现的任何参数吗?

Django: Can I use HttpResponseRedirect() and give it any arguments to be rendered on this page?

我有一个 Django 表单,在验证后我想重定向到一个成功页面。我从 "localhost/upload" 开始,提交我的表格,如果通过验证我想去 localhost/upload/success。下面的代码有效,我只想传递一个上下文字典,其中包含一些变量以呈现到页面。我只能使用(在下面的 views.py 代码中散列)

return render(request, 'results/success.html', context)

但是这个 return 到 localhost/upload,但是使用我的 success.html 模板 - 我想转到 upload/success。

这是我的代码:

views.py:

@login_required(login_url='/')
def upload(request):

    """ Upload panel or results.
    """

    if request.method == 'POST':

        paneluploadform = PanelUploadForm(request.POST, request.FILES)
        if paneluploadform.is_valid():

            paneluploadform.upload()

            context = {'hi': 'helloasdgja'}

            # return render(request, 'results/success.html', context)
            return HttpResponseRedirect('success')


        else:
            # print(paneluploadform.errors.as_text)
            pass

   else:

        paneluploadform = PanelUploadForm()
        context = {'paneluploadform': paneluploadform}

        return render(request, 'results/upload.html', context)


 @login_required(login_url='/')
 def success(request):

     """ Success view
     """

     return render(request, 'results/success.html')

urls.py:

from django.conf.urls import url
from .views import *

urlpatterns = [
    url(r'^upload/$', upload),
    url(r'^upload/success/', success)
]

我可以使用散列的 return render() 行来提供我的测试上下文,但是这个 returns 到 "localhost:8000/upload"

我想转到 localhost:800/upload/success,但从上传视图获取信息并重定向到 upload/success。我可以将上下文参数传递给 HttpResponseRedirect 还是有办法解决这个问题?

会话变量对于在 pages/views.

之间传递信息很有用

https://docs.djangoproject.com/en/dev/topics/http/sessions/

Ian Clelland 在这里很好地突出了您的选择: