我有一个映射到某个模型相关路径的函数,比如这个
@app.route('/models/<model_id>/something', methods=['GET'])
@fill_model
def my_function(user, model):
do_something();
在@fill_model
内部装饰器我从URL读取model_id
,从数据库中获取模型实例并将其推送到my_function
但是使用该表示法我得到以下错误'my_function() got an unexpected keyword argument 'model_id'
< / p>
所以我可以将model_id
添加到my_function
,但我并不真的需要它,它会破坏代码。有人知道如何解决这个问题吗?
当然我可以改变路线,然后它会正常工作,但我认为这有点肮脏的解决方案
答案 0 :(得分:0)
所以在我的情况下,我的fill_model
装饰器只是将所有参数推送到我的函数和model_id
是在这个参数中,而不是在函数签名中。所以需要做的是,它只是从传递给decorator中的函数的参数列表中删除model_id
。
@Thomas Orozco在评论中提供的正确答案非常感谢他。