Поисковый запросНабор дат Django - PullRequest
0 голосов
/ 14 июля 2020

У меня есть QuerySet дат в моем проекте Django. Рассмотрим в качестве примера следующие даты в QuerySet:

mm-dd-YYYY
01-15-2003
12-03-1971
04-23-1970
03-08-2005

Теперь у меня также есть панель поиска для поиска по этим датам. Я хочу включить эту функцию, чтобы пользователь мог ввести «Январь», и все даты января остались. Или, если бы они набрали «J», то все даты в январе, июне или июле остались бы.

Думаю, я спрашиваю, как я могу включить панель поиска, чтобы фильтровать через QuerySet дат?

1 Ответ

0 голосов
/ 14 июля 2020

Преобразуйте значение поиска в число месяца с помощью calendar.month_name, а затем отфильтруйте QuerySet по месяцам в списке выбранных месяцев.

value = "January 15"
search_date = value.strip(string.ascii_letters).strip()
search_month = value.strip(string.digits).strip()

months = [ k for k,v in enumerate(calendar.month_name) if v.lower().startswith(search_month.lower()) ]

entries = Entry.objects.filter(pub_date__month__in=months)

if search_date:
    entries = entries.filter(pub_date__date=int(search_date))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...