我正在尝试使用RedirectView.as_view从urls.py重定向,但它不起作用(我的意思是它不重定向,我保持在同一页面)。我认为使用的正则表达式是正确的。这是我的代码:
from django.conf.urls import url
from . import views
from django.views.generic import RedirectView
urlpatterns = [
url(r'^$', views.home, name='home'),
url(r'^login/(\w*)', views.login, name='login'),
url(r'^logout/', views.logout, name='logout'),
url(r'^index/', views.index, name='index'),
url(r'^login/tw.+', RedirectView.as_view(permanent=False, url='index/'))
]
我正在尝试从像这样的网址重定向:
http://127.0.0.1:8000/app/login/tw?oauth_token=THETOKEN&oauth_verifier=OAUTHVERIFIER
答案 0 :(得分:1)
r'^login/(\w*)'
在重定向规则之前捕获login/tw
。
答案 1 :(得分:0)
您在要重定向的网址前面添加一个斜杠,在urlpattern中添加+ app/
:
urlpatterns = [
# ...
url(r'^app/login/tw.+', RedirectView.as_view(permanent=False, url='/index/'))
]
*编辑:这只是猜测它是如何工作的:D
* edit2:在urlpattern中添加了app/