干草,我有一个相当复杂的查询,我无法在django中工作。django中的复杂查询
我的模型被称为汽车(),我想它
query = "SELECT *, ((ACOS(SIN("+user_lat+" * PI()/180) * SIN(lat * PI()/180) + COS("+user_lat+" * PI()/180) * COS(lat * PI()/180) * COS(("+user_lon+" - lon) * PI()/180)) * 180/PI()) * 60 * 1.1515) AS distance FROM app_car HAVING distance<='"+miles+"' ORDER BY distance ASC"
任何想法执行此查询?
感谢
编辑:
我的看法是这样的
def find_cars_within_miles_from_postcode(request, miles, postcode=0):
# create cursor for RAW query
cursor = connection.cursor()
# Get lat and lon from google
lat, lon = getLonLatFromPostcode(postcode)
# Gen query
query = "SELECT id, ((ACOS(SIN("+lat+" * PI()/180) * SIN(lat * PI()/180) + COS("+lat+" * PI()/180) * COS(lat * PI()/180) * COS(("+lon+" - lon) * PI()/180)) * 180/PI()) * 60 * 1.1515) AS distance FROM app_car HAVING distance<='"+miles+"' ORDER BY distance ASC"
# execute the query
cursor.execute(query)
# grab all the IDS form the sql result
ids = [row[0] for row in cursor.fetchall()]
# find cars from ids
cars = Car.objects.filter(id__in=ids)
# return the Cars with these IDS
return HttpResponse(cars)
这将返回我的车在几英里的NOx量,这个效果很好。然而,原始查询返回了他们距离特定位置的距离,我认为字段名称是'距离'。
如何返回此字段'距离'与我的车对象?
请参阅编辑。 – dotty 2010-02-22 11:48:06