J'ai une requête que j'essaie de comprendre la façon "django" de le faire: Je veux prendre les 100 derniers appels d'appel. Ce qui est facile: appels = Call.objects.all(). Order_by ('- call_time') [: 100]Requête Django: Compte et Groupe BY
Cependant la partie suivante je ne peux pas trouver le moyen de le faire via ORM de django. Je veux obtenir une liste des call_types et le nombre d'appels que chacun a dans le précédent queryset que j'ai fait. Normalement, je voudrais faire une requête comme celle-ci: "SELECT COUNT (id), calltype FROM appel WHERE id IN (SELECT ID FROM appel ORDER BY call_time DESC LIMIT 100) GROUP BY calltype;"
Je n'arrive pas à trouver la façon django de faire cette requête particulière.
Voici mes 2 modèles:
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()
C'est exactement ce que je cherchais pour Dimitry. Merci beaucoup! –