我已经过了好几个小时了,我再也看不到我做错了什么:
url(r'^baz/([a-z0-9]+)/([a-z0-9]+)/[0-9]/$', 'foobar.views.baz')
def baz(request, xxx, yyy, zzz):
pass
这是要求的实际网址:
http://localhost:8000/baz/75ca0f5bf13d67895e23419c25f82e87f3f5f95f/f733dbf686cd51f911e533d5a351f81394c9db5c/0/
Django一直向我抛出这个错误:
baz() takes exactly 4 arguments (3 given)
我做错了什么?
答案 0 :(得分:6)
你错过了正则表达式中的最后一块parens。
url(r'^baz/([a-z0-9]+)/([a-z0-9]+)/([0-9])/$', 'foobar.views.baz')
使用parens Python会将[0-9]
作为一个组捕获,现在您将获得所有3个参数(+ self
)而不是2。