Skip to content
Advertisement

How to Redirect URLs to a certain URL Django Regex

In my URLs.py, I’m setting my URL like this

url(r'^mobile/$', views.mobile, name='mobile')

Navigating to localhost:8000/mobile works as expected but if typed in the URL: localhost:8000/mobile/hello/world/234234hjhf8sc3 it should redirect to localhost:8000/mobile however this does not happen because my regex is incorrect (I’m not sure)

How could I do this/what is the correct regex to do this?

Another example would be localhost:8000/mobile/send/help/as792lp should redirect to localhost:8000/mobile

Advertisement

Answer

You can work with a RedirectView [Django-doc] to redirect any URL tat starts with a mobile/ to the mobile view:

from django.urls import reverse_lazy
from django.views.generic.base import RedirectView

url(r'^mobile/$', views.mobile, name='mobile')
url(r'^mobile/.+$', RedirectView.as_view(url=reverse_lazy('mobile')))

Note: As of , url(…) [Django-doc] is deprecated in favor of re_path(…) [Django-doc]. Furthermore a new syntax for paths has been introduced with path converters: you use path(…) [Django-doc] for that.

Advertisement