为关键字参数'响应'提供了多个值 - django

时间:2017-05-04 23:30:02

标签: python django arguments response keyword

我收到此错误 json_response_message() got multiple values for keyword argument 'response'

我想我是如何得到这个错误但是我找不到解决方法,有没有人能帮我一个忙?

出现此错误的原因是因为此行

return json_response_message(success_response(), response=response)

这些是我创建的两个函数,但它们工作正常,

def json_response_message(response, **kwargs):
    data = {}
    print(response)
    print(kwargs)
    data.update(response)
    data.update(kwargs)

    return JsonResponse(data)


def success_response(*args):
    # initial message to ok
    message = 'OK'

    # if there is *args then add this to the message
    if args:
        for value in args:
            message += value

    return {
        'status': True,
        'code': 200,
        'message': message
    }

我想如果我做这样的事情,一切都会好起来的

return json_response_message(success_response(), change_this=response)

是因为response是保留字还是什么?无论哪种方式,有没有办法让它成为response=response?因为前端的所有结构都已经设置好了。如果我没有必要,只要我有一些解决方法,我就不想改变任何事情。

有人可以帮我一把吗?提前致谢

1 个答案:

答案 0 :(得分:2)

此错误消息表示所有内容:json_response_message() got multiple values for keyword argument 'response'

您的函数定义标题def json_response_message(response, **kwargs):表示第一个(位置)参数的值将放在response变量中。然后你试图将第二个参数(关键字参数)传递给你的函数调用(json_response_message(success_response(), response=response)),其名称对应于response - 它已经由success_response() <返回的值赋值/ p>