DRF Serializer не обрабатывает объекты RawQuerySet, потому что он предназначен для работы с моделями Django и объектами QuerySet, возвращаемыми стандартными методами запросов к базе данных.
Если возникают проблемы с получением результатов при выполнении запроса на /nusers/9/, несмотря на то, что пользователя с таким идентификатором существует и SQL-запрос генерируется правильно, причиной может быть неправильная конфигурация вашего представления (view) или serializer.
Варианты решения проблемы:
1. Убедитесь, что ваше представление (view) правильно настроено и использует правильный serializer для обработки запросов, на основе полученных объектов RawQuerySet.
2. Если вы хотите продолжить использовать DRF Serializer для обработки объектов RawQuerySet, вам придется создать собственный serializer, который будет наследоваться от сериализатора DRF, но будет адаптирован для работы с объектами RawQuerySet. В этом случае вам придется вручную определить поля и логику сериализации/десериализации для объектов RawQuerySet.
3. Другим вариантом является преобразование объектов RawQuerySet в объекты QuerySet до передачи их в сериализатор DRF. Вы можете использовать метод list() для конвертации объектов RawQuerySet в QuerySet:
```python
queryset = RawQuerySet.objects.raw("SELECT * FROM my_table WHERE id = %s", [id])
queryset = list(queryset)
serializer = MySerializer(data=queryset, many=True)
```
4. Если вам не требуется полная функциональность DRF Serializer в отношении объектов RawQuerySet, вы можете возвращать результаты запросов в виде списков словарей или других простых структур данных, не требующих сериализации комплексных моделей.
Учитывайте, что использование объектов RawQuerySet может быть менее эффективным, чем использование стандартных моделей Django и QuerySet, поскольку объекты RawQuerySet не кешируются и не поддерживают ленивую загрузку связывания. Поэтому рекомендуется использовать объекты RawQuerySet с осторожностью и только в случаях, когда это необходимо.