我们知道django有CommaSeperated模型字段。但是我们如何将commaSeparated字符串传递给Django GET参数。
每当我尝试传递类似下面的内容作为GET参数时:
1,2,3,4
我在django视图中使用以下代码
request.GET.get('productids','')
在django视图中最终如下所示。
'1,2,3,4'
最终在数组周围添加引号。
请任何Django专家帮我解决这个问题。
答案 0 :(得分:2)
您可以使用getlist
param_list = request.GET.getlist('productids')
如果您将其作为单个参数传递,则可以构建它
param_list = [int(x) for x in request.GET.get('productids', '').split(',')]
答案 1 :(得分:1)
Django将GET和POST参数转换为字符串(或unicode)。这意味着,如果您将列表(数组)作为GET参数发送,则最终会在后端获取一个字符串。
但是,您可以将字符串转换回数组。也许是这样的:
product_ids = request.GET.get('productids', '')
ids_array = list(product_ids.replace(',', '')) # remove comma, and make list
ids_array
看起来像这样 - ['1', '2', '3']
。
<强>更新强>
值得注意的一点是ids_array
中的ID是字符串,而不是整数(感谢Alasdair在下面的评论中指出了这一点)。如果您需要整数,请参阅answer by Sayse。