gpt4 book ai didi

python - 为什么我的 Django View 装饰器没有收到传递给它的请求?

转载 作者:太空狗 更新时间:2023-10-29 19:32:29 25 4
gpt4 key购买 nike

我有一个看起来像这样的设置:

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 传递给它?

最佳答案

request 不是 View 的关键字参数,它是第一个位置参数。您可以作为 args[0] 访问它。

def foo_decorator(function):
@wraps(function)
def decorator(*args, **kwargs):
print args[0]
return function(*args, **kwargs)

return decorator

我建议您更改函数签名以显式包含 request:

def foo_decorator(function):
@wraps(function)
def decorator(request, *args, **kwargs):
print request
return function(request, *args, **kwargs)

return decorator

关于python - 为什么我的 Django View 装饰器没有收到传递给它的请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9397584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com