我正在尝试使用重定向函数传递变量,但它没有返回任何变量。
def one:
# define location variable here
return redirect(getting_started_info, location=location)
def getting_started_info(request, location=''):
location = location
...
有人可以告诉我为什么重定向中的变量没有通过吗?
答案 0 :(得分:12)
请注意redirect()
没有直接调用您的观点,它实际上是向客户端的浏览器发送302 Found
状态(301 Moved Permanently
如果您使用permanent=True
)重定向到其他URL的说明。在这种情况下,该网址是解析为getting_started_info
视图的网址。
我相信为了实现这一点,必须存在一个映射到getting_started_view
且使用其location
位置参数的urlconf。这很可能通过named groups发生。
来自redirect()
上的django 1.8文档entry:
争论可能是:
- 模型:将调用模型的get_absolute_url()函数。
- 视图名称,可能带参数:urlresolvers.reverse将用于反向解析名称。
- 绝对或相对网址,将用作重定向位置的原样。
答案 1 :(得分:10)
return HttpResponseRedirect(reverse('getting_started_info', kwargs={'location': location}))
答案 2 :(得分:2)
您也可以使用会话或cookie传递某个变量的值。