私は親 URLconf を持っています:
from django.conf.urls import include, patterns, url
urlpatterns = patterns('',
(r'^main/(?P<name>[^/]+)/(?P<region>[^/]+)/(?P<id>[^/]+)/', include('foo')),
)
そして、リダイレクトを含む子 URLconf (親に含まれる):
from django.conf.urls import patterns, url
urlpatterns = patterns('',
url(r'^view/$', RedirectView.as_view(url='/main/%(name)s/%(region)s/%(id)s/detail')),
)
(基本的に、次のようなパスを次のようなパスにリダイレクトしようとして/main/product/1/134/view
います/main/product/1/134/detail
。)
Djangoのドキュメントには、「含まれている URLconf は、親の URLconf からキャプチャされたパラメータを受け取る」と書かれています。
しかし、アクセスしようとすると/main/product/1/134/view
、認識されていないKeyError
ためと表示されます。name
RedirectView で受信したキャプチャされたパラメーターを参照する必要がある他の方法はありますか?
注: 親の URLconf ですべてを実行しても、エラーは発生しません。
urlpatterns = patterns('',
(r'^main/(?P<name>[^/]+)/(?P<region>[^/]+)/(?P<id>[^/]+)/view/$', RedirectView.as_view(url='/main/%(name)s/%(region)s/%(id)s/detail'))
)