У меня есть столбец, отформатированный как таковой в одном из моих моделей:Джанго QuerySet Datetime Фильтр
TEMP_START = models.DateTimeField(null=True)
И я пытаюсь сделать точный поиск с помощью QuerySet синтаксиса,
x.filter(TEMP_START=my_datetime_object) # x can be thought of as y.objects.all()
Это возвращает нет объектов, когда он должен делать больше одного. Однако
x.filter(TEMP_START__date=my_datetime_object.date()).filter(TEMP_START__hour=my_datetime_object.hour)
Возвращает надлежащие объекты (они почасово). Прямые фильтры дат-времени не поддерживаются, и, следовательно, ключевые слова должны использоваться?
====== Редактировать с плохими результатами:
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())
Пожалуйста, покажите то, что вы делаете, а не использовать содержание наполнителя, как 'my_datetime_object'. Нам будет полезно узнать, как вы на самом деле делаете вещи, и откуда происходят переменные. – rnevius
У 'TEMP_START' и' my_datetime_object' есть точные значения? – v1k45
Также обратите внимание, что «точно такой же» должен включать часы, минуты, секунды, миллисекунды и часовой пояс ... –