2017-01-25 2 views
0

Я пытаюсь перенаправить с urls.py с помощью RedirectView.as_view, но он не работает (я имею в виду, что он не перенаправляется, я остаюсь на одной странице). Я думаю, что правильные выражения используются правильно. Вот мой код:RedirectView.as_view django и 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/')) 
] 

Я пытаюсь перенаправить из URL, как это:

http://127.0.0.1:8000/app/login/tw?oauth_token=THETOKEN&oauth_verifier=OAUTHVERIFIER

+0

Определить «это не работает» – Sayse

+0

Он не перенаправляется, я остаюсь на той же странице – Elena

ответ

0

Вы добавляете слеш перед URL вы хотите перенаправить это нравится в URLPATTERN + app/:

urlpatterns = [ 
    # ... 
    url(r'^app/login/tw.+', RedirectView.as_view(permanent=False, url='/index/')) 
] 

* редактирование: это только предположение ч вл это не работает: D

* edit2: добавлена ​​app/ в URLPATTERN

+0

Спасибо за ответ, но я в том же месте, что и раньше, он не перенаправляет -.- – Elena

+0

Не могли бы вы объяснить немного больше, что происходит? Является ли это вашей базой urls.py? Является ли 'app /' также отсутствующим перед 'login/tw. +'? Я отредактировал ответ, чтобы включить эту часть URL. – mislavcimpersak

+0

app - мое приложение, и это urls.py моего приложения. Мой главный urls.py бесполезен. Я думаю, что основная проблема заключается в использовании httpResponse, и я возвращаю ответ, я не могу его отобразить. Я использую oauth с Authomatic, и мой код основан на простом примере Django. Еще раз спасибо за ваш ответ @mislav – Elena

0

r'^login/(\w*)' уловов login/tw перед правилом переадресации.