RedirectView.as_view django和urls.py

时间:2017-01-25 19:12:48

标签: python regex django

我正在尝试使用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

2 个答案:

答案 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/