【发布时间】:2015-04-20 05:55:47
【问题描述】:
这是应该发送到服务器进行查询的数据:
http://127.0.0.1:8000/cnt_bldg/?brgy_id=All&bldg_type=School%2CSport+Center%2FGymnasium%2FCovered+Court%2C
brgy_id=All
bldg_type=School%2CSport+Center%2FGymnasium%2FCovered+Court%2C
如您所见,bldg_type 中有两个值,分别是“School”和“Sport Center/Gymnasium/Covered Court”,其中以逗号分隔,您可以参考下面的 Jquery 代码:
var selected = $('#bldg_type option:selected');
var items = "";
selected.each(function () {
items += $(this).val() + ",";
});
$.ajax({
url: "cnt_bldg/",
type: "GET",
dataType: "JSON",
data: {
'brgy_id': brgy_id,
'bldg_type': items
},
...
我想根据这些值创建一个查询。到目前为止尝试过这个,首先是拆分值并执行循环并附加列表。这是我的尝试:
...
args = []
get_bldg_type = request.GET.get('bldg_type')
...
if get_bldg_type != '':
sp = [x.strip() for x in get_bldg_type.split(',')]
for term in sp:
args.append(Q(bldg_type=term))
for myid in ids_high:
getgeom = FloodHazard.objects.get(id=myid).geom
response_high = list(PolyStructures.objects.filter(geom__within=getgeom, *args).values(
'bldg_type','bldg_name').annotate(count=Count('bldg_name')))
for entry in response_high:
entry['type'] = 'High'
to_json.append(response_high)
【问题讨论】:
-
为什么不发布值而不是获取,以便可以在服务器端接收它作为方法的参数?
-
hmmn..如果我只在
bldg-type中选择 1 个值,它实际上可以工作。我想问题是,它不会从我的 Ajax 中拆分值。 -
看到你应该在服务器端方法中将它作为 List 参数接收,因为你是从 ajax 传递列表..
-
啊好吧...那我该怎么做呢?我将获取值并将其存储在列表变量中?
-
我对@987654329@ 不太了解。这 link 可能会有所帮助.. :)