В основном у меня есть два datetime, по одному от каждой модели.По словам питона, даты и время равны.Когда я пытаюсь запросить объект одного типа с указанием даты / времени другого, результаты не возвращаются.Однако, когда я пытаюсь сделать обратное и запросить другое к дате / времени первого, возвращается результат.Приведенные ниже примеры должны прояснить, что не так.
Мои модели выглядят так (сокращенно):
class Shift(models.Model):
normalized_start = models.DateTimeField(null=True)
class ScheduledShift(models.Model):
start_datetime = models.DateTimeField()
Неожиданное поведение, не возвращающее результат:
>>> shift = m.Shift.objects.get(pk=796)
>>> scheduled_shift = m.ScheduledShift.objects.get(pk=1)
>>> shift.normalized_start == scheduled_shift.start_datetime
True
>>> shift.normalized_start, scheduled_shift.start_datetime
(datetime.datetime(2011, 1, 4, 23, 15), datetime.datetime(2011, 1, 4, 23, 15))
>>> m.ScheduledShift.objects.filter(start_datetime=shift.normalized_start)
[]
Однако, когда я запрашиваю другую модель (это то, что должно было произойти в последнем примере) ...
>>> m.Shift.objects.filter(normalized_start=scheduled_shift.start_datetime)
[<Shift 796>]
Я использую SQLite, если это имеет какое-либо значение.