Ошибка при запросе API, если требуется пагинация в Django из-за того, что объект OrderBy' не имеет атрибута 'lstrip'?
У меня есть представление, которое наследуется от ListModelMixin из Django REST Framework, и я переопределил функцию list(...), чтобы добавить проверку параметров запроса в метод списка:
<!-- language: python-->
class UserViewSet(ListModelMixin):
def get_queryset(self):
return User.objects.all()
def list(self, request):
queryset = self.get_queryset()
# Get the query parameters from the request
sort_by = request.query_params.get('sort_by')
sort_order = request.query_params.get('sort_order')
sorting_query: OrderBy = F(sort_by).asc(nulls_last=True)
if sort_order == "desc":
sorting_query = F(sort_by).desc(nulls_last=True)
querySet = querySet.order_by(sorting_query, "id")
# Code fails here on the pagination method
page = self.paginate_queryset(queryset)
if page is not None:
serializer = self.get_serializer(page, many=True)
return self.get_paginated_response(serializer.data)
serializer = self.get_serializer(queryset, many=True)
return Response(serializer.data)
При запуске API я вижу ошибку: AttributeError(\"'OrderBy' object has no attribute 'lstrip'\")", которая, как я подозреваю, как-то связана с переменной sorting_query, но я понятия не имею ПОЧЕМУ. Дело в том, что я вижу эту ошибку только тогда, когда общее количество результатов превышает MAX размер страницы и требуется пагинация. В остальных случаях API работает нормально. Любая помощь будет оценена по достоинству!
Примечание: я использую cursor pagination из Django REST Framework.