Сравните значения даты и времени в моделях Django - PullRequest
0 голосов
/ 30 октября 2019

У меня есть модель предложения, которая имеет DateTimeField с именем offerDate, и у меня есть две записи в базе данных

>>> oldOffer.offerDate
datetime.datetime(2019, 10, 29, 15, 19, 43, 755325)
>>> currOffer.offerDate
datetime.datetime(2019, 10, 29, 15, 20, 2, 456100)
>>> Offer.objects.filter(offerDate__lt= currOffer.offerDate)
<QuerySet []>
>>> Offer.objects.filter(offerDate__gt= currOffer.offerDate)
<QuerySet [<Offer: Offer object (5)>, <Offer: Offer object (6)>]>

currOffer.offerDate явно больше, чем oldOffer.OfferDate. Тогда почему я получаю пустой результат с предложением __lt? Кроме того, почему я получаю и oldOffer (объект 5), и currOffer (объект 6), когда я использую предложение __gt? Что я делаю не так?

Заранее спасибо

1 Ответ

0 голосов
/ 30 октября 2019

Значения oldOffer.offerDate и currOffer.offerDate отличаются Time и равны Date. В соответствии с этим пунктом и результатом, который вы получаете, вы, возможно, использовали DateField вместо DateTimeField, и единственной эффективной частью currOffer.offerDate для сравнения является Date.

...