5

私は次のようなことをしようとしています:

urls.py で:

...
url(r'^(?P<pk>\d+)/$', VideoDetailView.as_view(), name='video_detail', kwargs={'foo:''})
...

views.pyで

..
HttpResponseRedirect(reverse('video_detail', kwargs={'pk': id, 'foo':'bar'}))
...

しかし、これはうまくいかないようです。引数 '()' とキーワード引数 '{'pk': 13240L, 'foo': 'bar}' が見つからない 'video_detail' の逆を取得します。

ただし、これは機能します。

....
HttpResponseRedirect(reverse('video_detail', kwargs={'pk': id}))
...

すなわち。逆呼び出しから foo: bar を削除します。これを行い、逆 URL に追加の引数を渡す正しい方法は何ですか?

4

1 に答える 1

8

reverseURLを作成する関数です。

pkURLパターンでパターンのみを指定したためpk、への引数としてのみ使用できます(生成されたURLはどの値でもまったく同じであるため、reverse追加しても意味がありません)。URLパターンに追加するか、複数の名前付きURLを作成できます。foofoofoo

url(r'^(?P<pk>\d+)/$', VideoDetailView.as_view(), name='video_detail', kwargs={'foo':''})
url(r'^(?P<pk>\d+)/$', VideoDetailView.as_view(), name='video_detail2', kwargs={'foo':'bar'})

また

url(r'^(?P<pk>\d+)/(?P<foo>\w+)/$', VideoDetailView.as_view(), name='video_detail')
于 2011-12-21T19:30:15.327 に答える