是否有针对查询字符串的预构建反序列化器,如:
foo[]=1&foo[]=2&foo[]=34&....&foo[]=5
目前我正在使用replace
和split
来处理字符串以获取包含所有值的序列,但我很好奇是否在Python或Django中没有一些实用程序/帮助器方法这样做。
显然Django在处理请求时可以做非常类似的事情,但我 a)不知道是否/如何使用它而 b)如果它可以从foo[]
表示法接收序列。
注意:我无法更改源字符串,因为它源自第三方软件包。
更新
感谢您的回复。我的价值来自POST,所以我做了以下(不确定是否有更直接的方式,如request.GET.getlist()
使用的答案):
foo = QueryDict(request.POST.get('my_var_name')).getlist('foo[]')
答案 0 :(得分:2)
首先,绝对没有理由使用[]
前缀发送数据。这是一个PHP或Rails习语,在Django中没有位置。
要从重复的参数中获取列表,您只需使用getlist
:
foos = request.GET.getlist('foo[]')
答案 1 :(得分:2)