Kit*_*nde 9 python django decorator
我的设置看起来像这样:
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
Run Code Online (Sandbox Code Playgroud)
输出:
{'promotion_id': u'11','page_id': u'119766481432558'}
Run Code Online (Sandbox Code Playgroud)
为什么我的装饰师没有被request传递给它?
Ala*_*air 23
request它不是视图的关键字参数,它是第一个位置参数.你可以访问它args[0].
def foo_decorator(function):
@wraps(function)
def decorator(*args, **kwargs):
print args[0]
return function(*args, **kwargs)
return decorator
Run Code Online (Sandbox Code Playgroud)
我建议您更改功能签名以request明确包含:
def foo_decorator(function):
@wraps(function)
def decorator(request, *args, **kwargs):
print request
return function(request, *args, **kwargs)
return decorator
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5593 次 |
| 最近记录: |