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]作为一个组,现在您将获得所有 3 个参数 (+ the self) 而不是 2 个。

于 2012-06-15T10:34:29.093 回答