Ich habe dieses Modell bekam:Erhalten Sie verschiedene Werte von Queryset durch Feld
class Visit(models.Model):
timestamp = models.DateTimeField(editable=False)
ip_address = models.IPAddressField(editable=False)
Wenn ein Benutzer in einem mehrfach Besuche Tag, wie kann ich für eindeutige Zeilen filtern basiert auf dem IP-Bereich? (Ich möchte die eindeutigen Besuche für heute)
today = datetime.datetime.today()
yesterday = datetime.datetime.today() - datetime.timedelta(days=1)
visits = Visit.objects.filter(timestamp__range=(yesterday, today)) #.something?
EDIT:
Ich sehe, dass ich verwenden kann:
Visit.objects.filter(timestamp__range=(yesterday, today)).values('ip_address')
eine ValuesQuerySet nur die IP-Felder zu erhalten. Jetzt sieht mein QuerySet wie folgt aus:
[{'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'}]
Wie kann ich diese Filter für Einzigartigkeit, ohne die QuerySet Auswertung und unter den db Hit?
# Hope it's something like this...
values.distinct().count()
möglich Duplikat [Auswahl unterschiedlicher Werte aus einem Tabellenfeld] (http://stackoverflow.com/questions/2466496/select-distinct-values-from-a-table-field) –