如何获取GET请求传递列表数据?

时间:2018-06-14 13:30:58

标签: javascript python django

如果我使用params在GET方法中传递一个列表:

fetch_physicalserver_list(){

    var params = {
      id_list: this.physicalserver_id_list // there is [24, 26, 27]
    }

    this.$Lml_http('get', this.$Api_urls.user_productmanage_physicalserver.list(), params,  response => {
      this.physicalserver_list = response.data.results
      console.log( response.data.results)
    }, error => {

    })
}

在请求中,id_list转换为id_list[]=24&id_list[]=27&id_list[]=27

enter image description here

并且我不知道如何在后端获取id_list

我使用该方法获取id_list[]我只会得到第一个id,如果我得到id_list,我什么也得不到。 enter image description here

get_param_from_query_params方法的代码:

def get_param_from_query_params(query_params, param):

    param_temp = None

    try:
        mutable = query_params._mutable
        query_params._mutable = True

        param_list = query_params.pop(param)
        param_temp = param_list[0] if (isinstance(param_list, list) and len(param_list) > 0) else ''

        query_params._mutable = mutable
    except Exception as e:
        pass

    return param_temp

所以,我有两个问题:

1. params的id_list转换为id_list[]。官方说明在哪里? 2.在我转到后端后如何获得id_list

1 个答案:

答案 0 :(得分:3)

首先,您使用的是密钥id_list[],因此您必须使用id_list[]来检索Django中的密钥。在JavaScript中包含[]是一个约定,表明有多个值,但它对Django没有任何影响。

如果您想要一个值列表而不是一个值,请使用pop_item代替pop

我不清楚为什么你需要get_param_from_query_params方法。您将返回param_list[0],这意味着您只会获得一件商品。使用getlist

会更简单
id_list = query_params.getlist('id_list')