为什么我的 Django 视图装饰器没有收到传递给它的请求?
我有一个看起来像这样的设置:
def foo_decorator(function):
@wraps(function)
def decorator(*args, **kwargs):
print kwargs
return function(*args, **kwargs)
return decorator
@foo_decorator
def analytics(request, page_id, promotion_id):
pass
输出:
{'promotion_id': u'11','page_id': u'119766481432558'}
为什么我的装饰器没有将 request
传递给它?
I have a setup looking something like this:
def foo_decorator(function):
@wraps(function)
def decorator(*args, **kwargs):
print kwargs
return function(*args, **kwargs)
return decorator
@foo_decorator
def analytics(request, page_id, promotion_id):
pass
Outputting:
{'promotion_id': u'11','page_id': u'119766481432558'}
Why is my decorator not getting request
passed to it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
request
不是视图的关键字参数,它是第一个位置参数。您可以通过args[0]
访问它。我建议您更改函数签名以显式包含
request
:request
isn't a keyword argument to the view, it's the first positional argument. You can access it asargs[0]
.I would recommend that you change the function signature to include
request
explicitly:该请求不作为关键字参数传递。它位于
args
中,而不是kwargs
中。The request is not passed as a keyword argument. It's in
args
, notkwargs
.