SQL コマンドの後に QuerySet をソートしたい。
resultSet = PoiRestauration.objects.raw(' \
WITH point as( \
SELECT ST_Transform(GeomFromText(\'POINT(%s %s)\',4326),900913) as geom \
) \
SELECT \
osm_id, way, type, amenity, name, cuisine, website, phone \
FROM \
poi_restauration, \
point \
WHERE \
way && st_expand(geom,100000) \
ORDER BY \
st_length(ST_ShortestLine(way,geom)) ASC \
LIMIT 5', [float(lon), float(lat)])
for object in resultSet:
object.way.transform(4326)
osrm = getOsrmRoute([str(lat)+","+ str(lon),str(object.way.y)+","+str(object.way.x)],"car",True)
object.osrmDistance = osrm['distance']
object.osrmGeometry = osrm['geometry']
print object.osrmDistance
結果セットの各ポイントについて、地理的距離を計算します。今、これらの距離を並べ替えたいのですが、クエリセットではできません。私はこのエラーがあります:
TypeError: 'PoiRestauration' object does not support indexing
このようなものを使用しようとすると:
print sorted(resultSet, key=lambda poi:poi[2])
ありがとうございます。それでは、お元気で