我有这个模型:
class Visit(models.Model):
timestamp = models.DateTimeField(editable=False)
ip_address = models.IPAddressField(editable=False)
如果一个用户在一天内多次访问,我该如何根据IP字段过滤唯一的行?(我想要今天的独特访问量)today = datetime.datetime.today()
yesterday = datetime.datetime.today() - datetime.timedelta(days=1)
visits = Visit.objects.filter(timestamp__range=(yesterday, today)) #.something?
编辑:
我看到我可以使用:
Visit.objects.filter(timestamp__range=(yesterday, today)).values('ip_address')
我想要得到一个仅包含ip字段的ValuesQuerySet。现在我的QuerySet如下:
[{'ip_address': u'127.0.0.1'}, {'ip_address': u'127.0.0.1'}, {'ip_address':
u'127.0.0.1'}, {'ip_address': u'127.0.0.1'}, {'ip_address': u'127.0.0.1'}]
如何在不执行查询并避免数据库负担的情况下筛选出唯一值?
# Hope it's something like this...
values.distinct().count()