我正在尝试捕获ajax请求中的过滤器列表,但是虽然我可以捕获单个过滤器,但当我尝试捕获列表时,由于某种原因我只得到一个空列表。
下面是我的视图和ajax(jQuery)函数的相关部分。当我尝试使用$.ajax({ .... 'filters': fixed })
发送单个过滤器时,这可以正常工作,但会失败并显示列表。
更新:尝试数据:{'filters': JSON.stringify([fixed])}
,确实将数据作为字符串传递给django '["fixed"]'
(如果我不使用getlist,我可以处理,但.get然后json.loads( )但我认为这里必须有一个更简单的方法。
def quotes_results_filter_view(request):
results_filters = request.GET.getlist('filters') or []
quotes_results = request.session['quotes_results']
for results_filter in results_filters:
.......
Ajax功能:
$(document).ready(function () {
$('#id_filter').change(function (e) {
var fixed = $(this).val()
console.log(fixed)
$.ajax({
url: '/users/filters/',
data: {
'filters': [fixed]
},
dataType: 'json',
success: function (data) {
console.log(data)
}
})
答案 0 :(得分:1)
当您通过jQuery发送列表时,它会将关键字更改为
所以在Django你可能必须这样:
request.GET.getlist('filters[]')