get_queryset 在 ListAPIView 中返回空白列表
get_queryset in ListAPIView retuns blank list
在我的应用程序中,我有两种类型的用户,即 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,但它总是 return 一个空列表,但是当我独立使用公司代码时,它工作得很好。
我猜 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:
...
在我的应用程序中,我有两种类型的用户,即 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,但它总是 return 一个空列表,但是当我独立使用公司代码时,它工作得很好。
我猜 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:
...