Get_queryset в ListAPIView возвращает пустой список
В моем приложении есть два типа пользователей, т.е. company
и employees
. Я пытаюсь отфильтровать набор запросов на основе этих типов следующим образом:
class ProductListAPIView(generics.ListAPIView):
serializer_class = ProductSerializer
# pagination_class = StandardResultsSetPagination
permission_classes = (permissions.IsAuthenticated, )
def get_queryset(self):
if self.request.user.is_company == 'True':
user_company = self.request.user.id
emp = list(Employee.objects.filter(company=user_company).values_list('pk', flat=True))
emp.append(user_company)
queryset = Product.objects.filter(owner__in=emp).order_by('-pk')
return queryset
elif self.request.user.is_employee == 'True':
com = Company.objects.filter(pk=self.request.user.id).pk
emp = list(Employee.objects.filter(company=com).values_list('pk', flat=True))
emp.append(com)
queryset = Product.objects.filter(owner__in=emp).order_by('-pk')
return queryset
Я пробовал URL с учетными данными сотрудника и компании, но он всегда возвращает пустой список, но когда я использую код компании самостоятельно, он работает отлично.
Я бы предположил, что is_company
и is_employee
являются булевыми полями.
В этом случае проверка должна быть
if self.request.user.is_company is True:
...
elif self.request.user.is_employee is True:
...
или просто
if self.request.user.is_company:
...
elif self.request.user.is_employee:
...