Количество Django RawQuerySet

Шаг скрутки, я использую django 1.2, и я хочу знать, как считать строки от сырых данных queryset (RawQuerySet).

Традиционный .count () метод не работает.

Вот мой запрос

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 )

И его возврат

Car_Deferred_model_id_user_id object

Какие-либо идеи?

19
задан dotty 23 February 2010 в 11:26
поделиться

1 ответ

Используйте функцию '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) 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))

Кроме того: есть полезная информация о методе Django 1.2 Model.objects.raw () по адресу: http://djangoadvent.com/1.2/smoothing-curve/ [Похоже, срок действия этого сайта мог быть истек, но в Интернет-архиве он есть по адресу: http://web.archive.org/web/20110513122309/http://djangoadvent.com/1.2/smoothing-curve/ ]

27
ответ дан 30 November 2019 в 03:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: