Tengo este modelo:Obtener valores distintos de queryset por el campo
class Visit(models.Model):
timestamp = models.DateTimeField(editable=False)
ip_address = models.IPAddressField(editable=False)
Si visitas un usuario varias veces en un día, cómo puedo filtrar las filas únicas basadas en el campo IP? (Quiero las visitas únicas por hoy)
today = datetime.datetime.today()
yesterday = datetime.datetime.today() - datetime.timedelta(days=1)
visits = Visit.objects.filter(timestamp__range=(yesterday, today)) #.something?
EDIT:
veo que puedo usar:
Visit.objects.filter(timestamp__range=(yesterday, today)).values('ip_address')
para obtener un ValuesQuerySet de sólo los campos de IP. Ahora mi QuerySet es el siguiente:
[{'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'}]
¿Cómo filtro para esta singularidad sin evaluar la QuerySet y toma el tiro db?
# Hope it's something like this...
values.distinct().count()
posible duplicado de [Seleccionar valores distintos de un campo de tabla] (http://stackoverflow.com/questions/2466496/select-distinct-values-from-a-table-field) –