Первый и последний использованные методы исключенные предметы

я использовал last() для получения последнего элемента набора запросов после исключения некоторых элементов, как показано ниже:

holidays = HolidayModel.objects.all().values_list('date', flat=True)
result = BorseExchangeLog.objects.exclude(
hint_time__date__in=holidays
)
# output 1
print(list(result.valuse_list('hint_time__date',flat=True).distinct('hint_time__date')))
#output2
print(result.last().hint_time.date())

but in output2 print item that not exists in output1

я проверил это first() и проблема была там же

в чем проблема? Мой код неправильный или ошибка в django orm?

использование django2.2 и postgresql

Ваша дататайм учитывает часовой пояс, но метод date() на объектах datetime не учитывает часовой пояс, __date будет учитывать часовой пояс при условии, что ваша БД поддерживает его. Используйте функцию django.utils.timezone.localdate для получения даты с учетом часового пояса

from django.utils.timezone import localdate
print(localdate(result.last().hint_time))
Вернуться на верх