Как создать пользовательскую панель поиска с фильтром в django?
Я пытаюсь создать панель поиска по фильтру, которую я могу настраивать. Например, вот представление:
class StudentListView(FilterView):
template_name = "leads/student_list.html"
context_object_name = "leads"
filterset_class = StudentFilter
def get_queryset(self):
return Lead.objects.all()
и вот мой filters.py: class
StudentFilter(django_filters.FilterSet):
class Meta:
model = Lead
fields = {
'first_name': ['icontains'],
'email': ['exact'],
}
До сих пор я могу создать только строку поиска фильтра, которая может предоставить список экземпляров, соответствующих first_name
или email
(которые являются полями в модели Lead
). Однако теперь это позволяет мне выполнять более сложные задачи. Допустим, я добавил time
к полям фильтра, и я хотел бы не только фильтровать модель Lead
со значением time
, которое я представил, но и другие экземпляры Lead
, которые имеют значение time
, близкое к тому, которое я представил. В принципе, я хочу что-то вроде def form_valid()
, используемое в представлениях, где я могу запрашивать, вычислять и даже изменять представленные значения.
Более того, если возможно, я хотел бы создать поле фильтра, которое не обязательно является фактическим полем в модели. Затем я хотел бы использовать представленное значение для выполнения некоторых вычислений в процессе фильтрации списка экземпляров. Если у вас есть какие-либо вопросы, пожалуйста, задавайте их в комментариях. Спасибо.