如何使用命名URL将URL参数传递给redirect()

时间:2014-11-29 22:54:42

标签: django django-views

我写过:

return redirect('/cmmods/login?next=%2F')

我希望能够像这样表达

return redirect('login', next='%2F')

(或者更好的回归redirect('login', next='/')

但我无法看到如何将URL参数与指定的URL结合起来。

这有效:

return redirect('login')

所以我知道指定的网址是正常的 - 但我需要通过下一个'它的参数。

1 个答案:

答案 0 :(得分:4)

尝试:

from django.core.urlresolvers import reverse

...

return HttpResponseRedirect(reverse('login') + '?next=%2F')

登录url接下来没有参数,但您可以创建一个带有下一个参数的新网址,并在默认的django.contrib.auth之前注入一个

 url(r'^login\?next=(?P<next>.*)$', 'django.contrib.auth.views.login', name='login'),

如果您愿意使用redirect('login', next='/')

,请使用该代码