Django - 如何通过HttpResponseRedirect传递变量

时间:2014-03-27 04:13:54

标签: python django django-views

#view1

...
    p = Model_Name.objects.get(pk=1)
    var_to_send = p.field_in_model
    return HttpResponseRedirect(reverse('namespace:name'))

#view2

def View2(request, var)
    #do something to var

我希望能够将var_to_send发送到View2。

2 个答案:

答案 0 :(得分:3)

HttpResponseRedirect执行HTTP 301重定向,更改浏览器栏中的网址。

您可以将var作为args传递,反向将构建与您的模式匹配的url。请参阅以下与此https://stackoverflow.com/a/13202435/948416

相关的答案

但您也可以调用View2函数并返回该结果而不是重定向:

...
p = Model_Name.objects.get(pk=1)
var_to_send = p.field_in_model
return View2(request, var_to_send)

第二种方法对我来说更好,因为它不需要任何额外的HTTP请求。

答案 1 :(得分:1)

HttpResponseRedirect(reverse('namespace:name', args=(var_to_send,)))

怎么样?