Запрос django: получить объекты, где только «время» больше, чем ЧЧ: мм, независимо от того, какая дата? - PullRequest
1 голос
/ 07 октября 2019

У меня есть модель с именем MinutePrice, в которой DateTimeField является одним из полей.

Я хочу сделать запрос объектов, время которых больше 15:30, нетнезависимо от того, какая дата.

Что я пробовал:

MinuetePrice.objects.filter(Q(date_time__lte="15:30"))

Произошли ошибки:

ValidationError: ["'15:30' value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] format."]

Есть идеи, чтобы решить эту проблему?

Ответы [ 3 ]

2 голосов
/ 07 октября 2019

Для этого

MinuetePrice.objects.filter(date_time__time__gt=datetime.time(15, 30))
можно использовать фильтр __ time
0 голосов
/ 07 октября 2019

Вам нужен объект datetime для сравнения, вы не можете сравнить его со строкой напрямую.

datetime.time(15,30)

Это должно решить вашу проблему

Надеюсь, это поможет!

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

Если вы хотите, чтобы все записи имели время больше 15:30, вы можете попробовать запрос Django следующим образом:

MinuetePrice.objects.filter(Q(timestamp__hour__gte=16) | Q(timestamp__hour__gte=15, timestamp__minute__gte=30))

Документ в этом времени набора запросов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...