ich eine Spalte, die als solche in einem meiner Modelle formatiert:Django Queryset für Datum und Uhrzeit Filter
TEMP_START = models.DateTimeField(null=True)
Und ich bin versucht, eine genaue Lookup über queryset Syntax wie
x.filter(TEMP_START=my_datetime_object) # x can be thought of as y.objects.all()
Diese kehrt zu tun keine Objekte, wenn es mehr als eins tun sollte.
x.filter(TEMP_START__date=my_datetime_object.date()).filter(TEMP_START__hour=my_datetime_object.hour)
Gibt die richtigen Objekte zurück (sie sind stündlich). Werden direkte Datetime-Filter nicht unterstützt und müssen daher Schlüsselwörter verwendet werden?
====== Bearbeiten mit schlechten Ergebnissen:
Searching for: {'TEMP_START': datetime.datetime(2016, 3, 31, 2, 0)}
Values in column: [{'TEMP_START': datetime.datetime(2016, 3, 29, 8, 0)}, {'TEMP_START': datetime.datetime(2016, 3, 29, 14, 0)}, {'TEMP_START': datetime.datetime(2016, 3, 30, 2, 0)}, {'TEMP_START': datetime.datetime(2016, 3, 29, 20, 0)}, {'TEMP_START': datetime.datetime(2016, 3, 30, 8, 0)}, {'TEMP_START': datetime.datetime(2016, 3, 30, 20, 0)}, {'TEMP_START': datetime.datetime(2016, 3, 31, 2, 0)}, {'TEMP_START': datetime.datetime(2016, 3, 30, 14, 0)}]
Values being returned: []
Code:
args_timeframe_start = {variables.temp_start: self.ranked_timeframes[rank][variables.temp_start]}
print(args_timeframe_start)
print(self.query_data.values(variables.temp_start).distinct())
query_data = self.query_data.filter(**args_timeframe_start)
print(query_data.values(variables.temp_start).distinct())
genau Bitte zeigen Sie, was Sie tun, anstatt Füllgrad mit wie 'my_datetime_object'. Es wird hilfreicher für uns zu sehen, wie Sie tatsächlich Dinge tun und woher die Variablen kommen. – rnevius
Haben 'TEMP_START' und' my_datetime_object' genau dieselben Werte? – v1k45
Beachten Sie auch, dass "genau das gleiche" Stunden, Minuten, Sekunden, Millisekunden und Zeitzone enthalten sollte ... –