Django计数RawQuerySet [英] Django count RawQuerySet

查看:164
本文介绍了Django计数RawQuerySet的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

干草,我使用django 1.2,我想知道如何从原始查询集(RawQuerySet)计数行。



传统的.count()方法不行。



我的查询

  query = SELECT *,((ACOS(SIN(%s * PI()/ 180)* SIN(lat * PI()/ 180)+ COS(%s * PI()/ 180)* COS(lat * 180)* COS((%s  -  lon)* PI()/ 180))* 180 / PI())* 60 * 1.1515)距离app_car的距离WHERE价格BETWEEN%s和%s HAVING距离< =%s ORDER BY distance ASC

cars = Car.objects.raw(query,[lat,lat,lon,min_price,max_price,miles])

return HttpResponse(cars)

其返回的

 code> Car_Deferred_model_id_user_id对象

任何想法?

解决方案

使用'len()'函数。这将给出:

  query =SELECT *,((ACOS(SIN(%s * PI()/ 180)* SIN(lat * PI()/ 180)+ COS(%s * PI()/ 180)* COS(lat * PI()/ 180)* COS((%s  -  lon)* PI()/ 180) * 180 / PI())* 60 * 1.1515)距离app_car的距离WHERE价格BETWEEN%s和%s HAVING距离< =%s ORDER BY distance ASC

cars = Car.objects.raw (查询,[lat,lat,lon,min_price,max_price,miles])

返回HttpResponse(len(list(cars))
http://djangoadvent.com/1.2/smoothing-curve/ [看起来该网站可能已经过期,但Internet存档有: http://web.archive.org/web/20110513122309/http ://djangoadvent.com/1.2/smoothing-curve/ ]


Hay, I'm using django 1.2 and i want to know how to count rows from a raw queryset(RawQuerySet).

The traditional .count() method doesn't work.

Heres my query

query = "SELECT *, ((ACOS(SIN(%s * PI() / 180) * SIN(lat * PI() / 180) + COS(%s * PI() / 180) * COS(lat * PI() / 180) * COS((%s - lon) * PI() / 180)) * 180 / PI()) * 60 * 1.1515) AS distance FROM app_car WHERE price BETWEEN %s AND %s HAVING distance<=%s ORDER BY distance ASC"

cars = Car.objects.raw(query, [lat, lat, lon, min_price, max_price, miles])

return HttpResponse( cars )

And its returning

Car_Deferred_model_id_user_id object

Any ideas?

解决方案

Use the 'len()' function. This would give:

query = "SELECT *, ((ACOS(SIN(%s * PI() / 180) * SIN(lat * PI() / 180) + COS(%s * PI() / 180) * COS(lat * PI() / 180) * COS((%s - lon) * PI() / 180)) * 180 / PI()) * 60 * 1.1515) AS distance FROM app_car WHERE price BETWEEN %s AND %s HAVING distance<=%s ORDER BY distance ASC"

cars = Car.objects.raw(query, [lat, lat, lon, min_price, max_price, miles])

return HttpResponse(len(list(cars))

Aside: there's some useful information on the Django 1.2 Model.objects.raw() method at: http://djangoadvent.com/1.2/smoothing-curve/ [Looks like that site might have expired, but the Internet Archive has it at: http://web.archive.org/web/20110513122309/http://djangoadvent.com/1.2/smoothing-curve/ ]

这篇关于Django计数RawQuerySet的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆