Как передать значения для получения нужного queryset?
Как мне передать в request.GET параметры, чтобы я мог отфильтровать набор данных. Мну нужно по промежутку даты вытащить нужные данные с базы. Например, с 2020-01-20 по 2020-02-15.
def get_queryset(self):
if request.GET['from'] and request.GET['to']:
return RecognizedObject.objects.filter(created_datetime__gte=from,
created_datetime__lte=to)
Есть пока только такой код в шаблоне откуда будет отправляться request
<label for="start">От:</label>
<input type="date" id="start" name="trip-start"
value="2018-07-22"
min="2015-01-01" max="2020-12-31">
<label for="finish">До:</label>
<input type="date" id="finish" name="trip-finish"
value="2018-07-22"
min="2015-01-01" max="2020-12-31">
<button class="submit">Искать</button>
Ответы (1 шт):
Автор решения: Mykyta
→ Ссылка
Решил сам таким образом: в views.py
class RecognationObjectListView(ListView):
model = RecognizedObject
paginate_by = 10
paginate_orphans = 4
def get_queryset(self):
if self.request.GET.get('from') and self.request.GET.get('to'):
from_date = self.request.GET.get('from')
to = self.request.GET.get('to')
print(from_date, to)
return RecognizedObject.objects.filter(created_datetime__gte=from_date, created_datetime__lte=to)
return RecognizedObject.objects.filter(created_datetime__lte=timezone.now())
в urls.py
path('recognized-object/', login_required(views.RecognationObjectListView.as_view(), login_url='login'),
name='rec_objs_list_url'),
в шаблоне для отправки request-a
<form action="" method="GET">
<label for="finish">От:</label>
<input type="date" id="start" name="from"
value="2018-07-22"
min="2015-01-01" max="2020-12-31">
<label for="finish">До:</label>
<input type="date" id="finish" name="to"
value="2018-07-22"
min="2015-01-01" max="2020-12-31">
<input type="submit" value="Искать"/>
</form>