Redirection in Django URLs
-
06-07-2021 - |
Question
How do I redirect all URLs starting from a particular pattern to another?
Description:
I want to be able to redirect as follows:
/pattern1/step1/ to /pattern2/step1/
/pattern1/step2/ to /pattern2/step2/
/pattern1/continue/ to /pattern2/continue/
What is the easiest way of doing this in Django URL patterns?
Solution
RedirectView works. Capture the remainder of the path with a named kwarg. It will be passed into RedirectView.get_redirect_url
, so you can interpolate it into the url you provide.
url(r'^pattern1/(?P<url>.+)$', RedirectView.as_view(url="/pattern2/%(url)s")),
# ^ ^
# | this url appears here |
OTHER TIPS
You can use redirect_to
generic view and add redirection urls in urls.py as:
from django.views.generic.simple import redirect_to
urlpatterns = patterns('',
('^pattern1/step1/$', redirect_to, {'url': '/pattern2/step1/'}),
#any more patters.
)
Here is documentation: Generic view redirect_to . These can take the parameters as well.
Redirections could also be handled at the web server level.
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow