Итак, у меня есть этот фильтр, использующий Django Filter
:
class AssignmentFilter(FilterSet):
assignment_date = filters.DateFromToRangeFilter()
Этот встроенный класс Django Фильтр генерирует форму с этими двумя входами:
<input type="text" name="assignment_date_after" id="id_assignment_date_0">
<input type="text" name="assignment_date_before" id="id_assignment_date_1">
Так что вы выбираете две даты и на основании этого получаете отфильтрованный QuerySet. Все работает хорошо.
Однако я хотел бы использовать этот полезный DateRangePicker: https://www.daterangepicker.com/
Это активируется так:
<input type="text" name="dates" class="form-control">
<script>
$('input[name="dates"]').daterangepicker();
</script>
Однако, как вы можете видеть, это только одно поле, в котором будет установлен диапазон между датами. Но Django Filter
работает с начальным полем ввода и конечным полем ввода.
Как я могу изменить это, чтобы я мог использовать красивый виджет, который принадлежит input[name="dates"]
.
Возможно, решение состоит в том, чтобы обработать его с JavaScript после запроса GET
. Затем функция возьмет дату начала и вставит ее в поле id_assignment_date_0
. И возьмите дату окончания и введите ее в поле id_assignment_date_1
. Оба поля id_assignment_date_0
и id_assignment_date_1
будут визуально скрыты в форме. Это выглядит довольно глупо.
У кого-нибудь есть умное решение для этого?