所以我已经阅读了所有类似的问题并复制了他们写的内容,但我仍然遇到问题。所以我想要这样的东西
# Yes, I know django has one but I want to make my own
@rate_limit(seconds=10)
myview(request, somearg, *args, **kwargs):
# Return a response
...
def rate_limit(seconds=10):
def decorator(view):
def wrapper(request, *args, **kwargs):
# Do some stuff
return view(request, *args, **kwargs)
return wrapper
return decorator
当我运行它时,我得到了错误
decorator() got an unexpected keyword argument 'somearg'
所以我附加装饰器来接受 args 和 kwargs 并得到这个错误
# New decorator signature
def decorator(view, *args, **kwargs)
和错误
'function' object has no attribute 'status_code'
编辑: 所以解决方案是使用。谢谢马丁彼得斯!_
@rate_limit()
代替
@rate_limit