Сериализатор Django, требующий дикт вместо экземпляра модели

Я пытаюсь сделать действительно простую сериализацию в viewset в django, но мой сериализатор, который должен требовать экземпляр для сериализации, требует dict.

Это мой пользовательский сериализатор:

А это мой ViewSet:

class JSONAPIModelViewSet(viewsets.ViewSet, GenericAPIView):
    """
    A viewset designed to implement the JSON:API spec by default.
    """

    serializer_class: serializers.Serializer = None
    filterset_class: django_filters.FilterSet = None
    pagination_class = JSONAPILimitOffsetPagination
    lookup_field = "id"

    def __init__(self, *args, **kwargs: Any) -> None:
        super().__init__(*args, **kwargs)

    def get_queryset(self):
        return self.serializer_class.Meta.model.objects.all()

    def list(self, request, *args, **kwargs):
        queryset = self.filter_queryset(self.get_queryset())

        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)

    def retrieve(self, request, *args, **kwargs):
        instance = self.get_object()
        serializer = self.get_serializer(instance)
        if serializer.is_valid():
            return Response(serializer.data)
        return Response(serializer.errors)


class AnimeViewSet(JSONAPIModelViewSet):
    serializer_class = AnimeSerializer
    filterset_class = AnimeFilter
    relationships = ['characters', 'staff']

Однако, когда я пытаюсь сделать запрос к представлению retrieve, я получаю следующий ответ:

{
   non_field_errors: [
      "Invalid data. Expected a dictionary, but got Anime."
   ]
}

Я попробовал заменить self.get_serializer(instance) на self.get_serializer(data={}), но теперь экземпляр, передаваемый в to_representation в сериализаторе, является экземпляром самого себя. Я пробовал поднимать ошибки, чтобы увидеть, где код остановился, и исключение поднимается при проверке is_valid(). Если я делаю is_valid(raise_exception=False), я получаю пустой JSON в качестве ответа. Я даже пытался явно поставить AnimeSerializer вместо self.get_serializer(), но это бесполезно.

Как я могу заставить его принимать экземпляр в качестве фактического параметра данных и перестать требовать диктант?

Edit: Это происходит только с видом retrieve, с видом list все работает нормально.

Вернуться на верх