J'ai ce modèle:Obtenir des valeurs distinctes de queryset par le champ
class Visit(models.Model):
timestamp = models.DateTimeField(editable=False)
ip_address = models.IPAddressField(editable=False)
Si un utilisateur visite plusieurs fois en une seule journée, comment puis-je filtrer les lignes uniques en fonction du champ ip? (Je veux que les visites uniques pour aujourd'hui)
today = datetime.datetime.today()
yesterday = datetime.datetime.today() - datetime.timedelta(days=1)
visits = Visit.objects.filter(timestamp__range=(yesterday, today)) #.something?
EDIT:
Je vois que je peux utiliser:
Visit.objects.filter(timestamp__range=(yesterday, today)).values('ip_address')
pour obtenir un ValuesQuerySet de juste les champs IP. Maintenant, mon QuerySet ressemble à ceci:
[{'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'}]
Comment filtrer cette unicité sans évaluer la QuerySet et en prenant le coup db?
# Hope it's something like this...
values.distinct().count()
double possible de [Sélectionner des valeurs distinctes d'un champ de table] (http://stackoverflow.com/questions/2466496/select-distinct-values-from-a-table-field) –