Django的ORM。按要素分组

时间:2014-11-27 12:42:56

标签: python django orm

我有这个Django模型:

class Visits(models.Model):
    ip = models.GenericIPAddressField()
    url = models.CharField(max_length=200)
    datetime = models.DateTimeField(auto_now_add=True)

 def __unicode__(self):
    return "%s : %s (%s)" % (unicode(self.ip), 
                             unicode(self.datetime.strftime('%d/%m/%y %H:%M:%S')), 
                             unicode(self.url))

它包含对我网站的所有访问。例如,这些都是来自DB的值:

<Visits: 127.0.0.1 : 27/11/14 00:00:00 (/)>,
<Visits: 127.0.0.1 : 27/11/14 00:01:00 (/)>, 
<Visits: 127.0.0.1 : 27/11/14 00:09:00 (/)>, 
<Visits: 127.0.0.1 : 27/11/14 00:45:00 (/)>, 
<Visits: 127.0.0.1 : 27/11/14 00:46:00 (/)>

我想编写一个ORM查询,该查询将值分组为15分钟增量。例如,此查询应返回count()==2(前三个值在第一组中,后两个在第二组中)。我怎么能用Django的ORM来做呢?

1 个答案:

答案 0 :(得分:-1)

enter image description here

在这里,我有四次访问,并且我试图通过28岁以下的小型过滤掉。

>>> visits_count = len([ obj for obj in Visits.objects.all() if obj.datetime.strftime('%M') >  '28'])
>>> visits_count
2

小于等于28的情况。

>>> visits_count = len([ obj for obj in Visits.objects.all() if obj.datetime.strftime('%M') >=  '28'])
>>> visits_count
4