#python #django #django-views
#python #django #django-просмотры
Вопрос:
Я работаю с непальской датой, и следующая дата верна, но django не позволяет мне запускать запрос.
search_range = Trans.objects.filter(tr_date__gte='2077-04-01', tr_date__lte='2077-04-32')
У меня есть следующий код, который работает нормально, если я указываю дату до 2077-04-30. Но, согласно непальскому календарю, 4-й месяц имеет 32 дня. Когда я пытаюсь выполнить запрос с 32-го дня, django возвращает следующую ошибку.
ValidationError at /trans/list/search/
['“2077-04-32” value has the correct format (YYYY-MM-DD) but it is an invalid date.']
Request Method: GET
Request URL: http://127.0.0.1:8000/trans/list/search/
Django Version: 3.1
Exception Type: ValidationError
Exception Value:
['“2077-04-32” value has the correct format (YYYY-MM-DD) but it is an invalid date.']
Как я могу получить данные в указанном диапазоне? Любое предложение высоко ценится.
Ответ №1:
Почему бы просто не использовать tr_date__lt=’2077-05-01′, т. Е. Чуть меньше 5/1 — я лично никогда не слышал о том, что в любом месяце 32 дня, но если вы просто отфильтруете менее 5/1, разве это не даст тот же результат?
Комментарии:
1. Большое вам спасибо Э.Дж. Бреннан. Предложенный вами способ решил мою проблему. Мы используем непальский календарь, в котором вместо AD указана дата BS. В месяце до 32 дней. Общее количество дней в месяце рассчитывается на основе движения Луны.