У меня есть запрос, который я пытаюсь выяснить, как это делает "django":
Я хочу принять последние 100 звонков от Call. Что легко:
Call = Call.objects.all (). order_by ('- call_time') [: 100]
Однако в следующей части я не могу найти способ сделать это с помощью ORM django. Я хочу получить список call_types и количество вызовов, которые каждый из них имеет в рамках предыдущего набора запросов, который я только что сделал. Обычно я выполняю запрос, подобный следующему: «SELECT COUNT (id), тип вызова FROM из вызова WHERE ID IN (идентификатор SELECT из вызова ORDER BY call_time DESC LIMIT 100) GROUP BY calltype;»
Кажется, я не могу найти способ выполнения этого конкретного запроса с помощью django.
Вот мои 2 модели:
class Call( models.Model ):
call_time = models.DateTimeField( "Call Time", auto_now = False, auto_now_add = False )
description = models.CharField( max_length = 150 )
response = models.CharField( max_length = 50 )
event_num = models.CharField( max_length = 20 )
report_num = models.CharField( max_length = 20 )
address = models.CharField( max_length = 150 )
zip_code = models.CharField( max_length = 10 )
geom = models.PointField(srid=4326)
calltype = models.ForeignKey(CallType)
objects = models.GeoManager()
class CallType( models.Model ):
name = models.CharField( max_length = 50 )
description = models.CharField( max_length = 150 )
active = models.BooleanField()
time_init = models.DateTimeField( "Date Added", auto_now = False, auto_now_add = True )
objects = models.Manager()