3

私はこれに何時間も費やしてきましたが、何が間違っているのかわかりません。

url(r'^baz/([a-z0-9]+)/([a-z0-9]+)/[0-9]/$', 'foobar.views.baz')

def baz(request, xxx, yyy, zzz):
    pass

そして、これは要求されている実際の URL です。

http://localhost:8000/baz/75ca0f5bf13d67895e23419c25f82e87f3f5f95f/f733dbf686cd51f911e533d5a351f81394c9db5c/0/

Djangoは私にこのエラーを投げ続けます:

baz() takes exactly 4 arguments (3 given)

私は何を間違っていますか?

4

1 に答える 1

6

正規表現に括弧の最後のブロックがありません。

url(r'^baz/([a-z0-9]+)/([a-z0-9]+)/([0-9])/$', 'foobar.views.baz')

括弧を使用すると、Python は を[0-9]グループとしてキャプチャし、2 つではなく 3 つのパラメーター (+ ) をすべて取得しますself

于 2012-06-15T10:34:29.093 に答える