2016-08-02 4 views
0

私はDjango 1.9を使用しています。 urls.pyファイルにパラメータ付きのURLをリダイレクトする方法はありますか?Djangoはurls.pyファイル内のパラメータを持つURLをリダイレクトしますか?

/org/123/のようなURLを対応するURL /neworg/123に恒久的にリダイレクトしたいとします。

私はhow to redirect within a viewを知っていますが、それだけでurls.pyの中にそれを行う方法があるのだろうかと思います。

答えて

2

RedirectViewを使用できます。古いurlパターンと新しいurlパターンが同じargsとkwargsを持つ限り、pattern_nameを使用してリダイレクト先のURLパターンを指定できます。

from django.views.generic.base import RedirectView 

urlpatterns = [ 
    url(r'^neworg/(?P<pk>\d+)/$', new_view, name='new_view'), 
    url(r'^org/(?P<pk>\d+)/$', RedirectView.as_view(pattern_name='new_view'), name='old_view') 
] 
+0

変なふうに私はその後、呼び出し可能かドット表記のPATH'ではありません '「<0x10b2c00d0でdjango.views.generic.base.RedirectViewオブジェクト>」のような他のテンプレートでエラーを取得を開始 - それは間違いなくそのリダイレクトです問題を引き起こしているように、私がコメントアウトしたように、エラーも消えます。 – Richard

+0

私は 'as_view'を見逃していました。答えは今修正されました。 – Alasdair

+0

ありがとう!今は完璧に動作します。 – Richard

関連する問題