【问题标题】:HttpResponseRedirect questionHttpResponseRedirect 问题
【发布时间】:2010-04-05 07:13:26
【问题描述】:

我们不能在使用 HttpResponseRedirect 时发送字典变量

        render_to_response('edited/display.html',context_instance=RequestContext(request,{'newlist': newlist}))

    //How can the dictionary and the request sent back again

    //sumthing like this

    return HttpResponseRedirect('edited/display.html',context_instance=RequestContext(request,{'newlist': newlist}))

【问题讨论】:

    标签: python django django-views


    【解决方案1】:

    响应重定向顾名思义,将用户的浏览器重定向到新的 URL,因此除了 HttpResponseRedirect 中的新位置之外,传递任何其他内容都没有任何意义

    如果您想传递一些数据,以便在新位置 url 的 view 中检查该数据,请将其作为 url 参数传递,例如

    return HttpResponseRedirect('edited/display.html?msg=I was redirected')
    

    【讨论】:

      【解决方案2】:

      所以让我在现有答案的基础上再添加一个答案:

      my_url = reverse("my_app.views.my_path") + "?action_result=124"
      return HttpResponseRedirect(my_url)
      

      反向函数为:from django.core.urlresolvers import reverse

      【讨论】:

        【解决方案3】:

        来自the documentation

        构造函数接受一个参数——重定向到的路径。这可以是完全限定的 URL(例如“http://www.yahoo.com/search/”)或没有域的绝对 URL(例如“/search/”)。

        【讨论】:

          【解决方案4】:

          你真正要找的,我认为是1.1中引入的redirect函数

          根据您的情况,您可以改为使用

          redirect(view_name,view_parameter)
          

          为此,可能需要先修改您的视图,获取 new_list 参数,或者将 slug 或 id 传递给它。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-08-14
            • 2015-02-10
            • 2010-10-28
            • 1970-01-01
            • 2018-11-15
            • 1970-01-01
            • 2015-07-03
            • 2014-01-07
            相关资源
            最近更新 更多