У меня есть следующее представление на основе классов, в котором я реализовал пользовательские функции запросов, но когда я пытаюсь выполнить поиск, я не получаю результаты. У меня есть данные, доступные в БД для информации о сотруднике, но без результатов. о, вот так выглядит мой Q-фильтр.
class PayslipSearch(ListAPIView):
# queryset = Payslip.obejcts.all()
serializer_class = PayslipDetailSerializer
filter_backends = [SearchFilter]
search_fields = ['employee__user__first_name',
'employee__user__last_name',
'basic_salary__salary_value',
# 'payment_mode',
# 'payslip_no',
# 'month_ending',
# 'deductions',
# 'allowances'
]
def get_queryset(self, *args, **kwargs):
queryset_list = Payslip.objects.all()
# call GETs get to get your values
query = self.request.GET.get("q")
print(query)
if query:
queryset_list = Payslip.objects.filter(
Q(employee__user__first_name__icontains=query) |
Q(employee__user__last_name__icontains=query) |
Q(basic_salary__salary_value__icontains=query)
# Q(payment_mode__icontains=query) |
# Q(payslip_no__icontains=query) |
# Q(month_ending__icontains=query) |
# Q(allowances__icontains=query) |
# Q(deductions__icontains=query)
).distinct()
return queryset_list