1

私は親 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'))
)
4

1 に答える 1