我试图从我的模板中获取值,kmdistance但是当我查看页面时它会返回错误.
这是views.py
def display_maps(request):
#bases for city proper
pnt = ButuanMaps.objects.get(clandpin='162-03-0001-017-33').geom
#landproperty__sownerid__id=5 is for government user
kmdistance = request.GET.get("kmtocity", None)
mysection = (request.GET.get("mysection", None))
query_section = Section.objects.all().order_by('id')
...
query_maps = ButuanMaps.objects.filter(landproperty__sownerid__id=5, geom__distance_lte=(pnt, D(km=kmdistance)), ssectionid__id=mysection)
...
Run Code Online (Sandbox Code Playgroud)
这是template.html
<select name="kmtocity" class="form-control">
<option type="text" value="empty">Select Km. away from City Proper</option>
<option value="1">1</option>
<option value="5">5</option>
<option value="10">10</option>
<option value="15">15</option>
<option value="20">20</option>
</select>
Run Code Online (Sandbox Code Playgroud)
当我尝试将值放在距离时,它工作正常.
下面的查询大约需要 15 分钟才能显示结果。我想知道为什么?因为数据?或者几何体的顶点?当我尝试使用不同的表(小型形状文件)进行查询时,它运行得很快。
这是查询。(感谢帕特里克):
WITH hi AS (
SELECT ps.id, ps.brgy_locat, ps.municipali
FROM evidensapp_polystructures ps
JOIN evidensapp_seniangcbr fh ON fh.hazard = 'High'
AND ST_Intersects(fh.geom, ps.geom)
), med AS (
SELECT ps.id, ps.brgy_locat, ps.municipali
FROM evidensapp_polystructures ps
JOIN evidensapp_seniangcbr fh ON fh.hazard = 'Medium'
AND ST_Intersects(fh.geom, ps.geom)
EXCEPT SELECT * FROM hi
), low AS (
SELECT ps.id, ps.brgy_locat, ps.municipali
FROM evidensapp_polystructures ps
JOIN evidensapp_seniangcbr fh ON fh.hazard = 'Low'
AND ST_Intersects(fh.geom, ps.geom)
EXCEPT SELECT * FROM hi
EXCEPT …Run Code Online (Sandbox Code Playgroud) 我正在使用Bootstrap Multiselect,这是我在HTML中的设置:
<div class="form-group">
<select class="form-control" id="bldg_type" multiple="multiple">{% for type in buildings %}
<option value="{{type.bldg_type}}">{{type.bldg_type}}</option>{% endfor %}
</select>
</div>
Run Code Online (Sandbox Code Playgroud)
我想使用我的查询的选定值,我的Ajax代码的片段:
$.ajax({
url: "cnt_bldg/",
type: "GET",
dataType: "JSON",
data: {
'brgy_id': brgy_id,
'bldg_type': $('#bldg_type option:selected').val()
},
...
Run Code Online (Sandbox Code Playgroud)
问题$('#bldg_type option:selected').val()是我只能获得1个值.例如,我检查Market并Police Station在我的选择选项中,并在我的控制台中查看http://127.0.0.1:8000/cnt_bldg/?brgy_id=All&bldg_type=Market".它只获得Market.
如何获取所有值并将其用于查询?
顺便说一下,我正在使用Django.我已经阅读了这个答案,但我不知道如何在上面的AJAX代码中使用结果.
<?php
$id=$_POST['itinerary_id'];
$query=mysql_query("select * from tblitinerarydetails where tblid='$id' order by date_of_travel asc");
$i = 0;
$prevValue = NULL;
while($rows=mysql_fetch_array($query)){
$date=$rows['date_of_travel'];
$mydate = strtotime($date);
$newdate = date('F j, Y', $mydate);
$activities=$rows['activities'];
$time_departure=$rows['time_departure'];
$time_arrival=$rows['time_arrival'];
$new_time_departure = date('g:i A', strtotime( $time_departure));
$new_time_arrival = date('g:i A', strtotime( $time_arrival));
$means_of_transportation= $rows['means_of_transportation'];
$travelling_allowance = number_format($rows['travelling_allowance'],2);
$destination = $rows['destination'];
$i++;
echo "<tr>";
if ($newdate == $prevValue) {
echo "<td align='left' rowspan='$i'>$prevValue</td>";
}
$prevValue = $newdate;
echo "<td align='left'>$destination</td>";
echo "<td align='center'>$new_time_departure</td>";
echo "<td align='center'>$new_time_arrival</td>";
echo "<td align='center'>$activities</td>"; …Run Code Online (Sandbox Code Playgroud) 我试图获取危险类型为“高”的所有建筑结构。我有以下查询:
>>> reference = FloodHazard.objects.filter(hazard='High')
>>> ids = reference.values('id')
>>> for id in ids:
... getgeom = FloodHazard.objects.get(id=id).geom
... getbldg = BuildingStructure.objects.filter(geom__intersects=getgeom).value_list('id')
Traceback (most recent call last):
File "<console>", line 3, in <module>
File "C:\Python27\lib\site-packages\django\db\models\manager.py", line 151, in get
return self.get_queryset().get(*args, **kwargs)
File "C:\Python27\lib\site-packages\django\db\models\query.py", line 298, in get
clone = self.filter(*args, **kwargs)
File "C:\Python27\lib\site-packages\django\db\models\query.py", line 590, in filter
return self._filter_or_exclude(False, *args, **kwargs)
File "C:\Python27\lib\site-packages\django\db\models\query.py", line 608, in _filter_or_exclude
clone.query.add_q(Q(*args, **kwargs))
File "C:\Python27\lib\site-packages\django\db\models\sql\query.py", line 1198, in add_q
clause = self._add_q(where_part, used_aliases) …Run Code Online (Sandbox Code Playgroud) django ×3
python ×2
ajax ×1
geodjango ×1
html-table ×1
jquery ×1
openlayers ×1
php ×1
postgis ×1
postgresql ×1