Django Polymorphic Serializer Объект типа ListSerializer не является JSON сериализуемым

Я работаю над представлением на django, которое должно возвращать вложенный список внутри другого списка записей, для этого я использую вложенный сериализатор. Дело в том, что вложенный сериализатор - это полиморфный сериализатор, который разлагается на множество других сериализаторов.

Когда я использую обычный сериализатор вместо полиморфного, подход работает нормально, но когда я использую полиморфный сериализатор, он выдает следующую ошибку

Object of type ListSerializer is not JSON serializable

Вот как я вызываю первый сериализатор в моем представлении

return Response(serializers.FormEntriesHistorySerializer(forms,many=True,context={'device_id': kwargs.get('device_id')}).data)

А это родительский сериализатор

class FormEntrySerializer(serializers.ModelSerializer):

#form =  FormSerializer(read_only=True)
response_set = ResponsePolymorphicSerializer(many=True,read_only=True)

class Meta:
    model = models.FormEntry
    fields = '__all__'

def to_representation(self, instance):
    response = super().to_representation(instance)
    response["response_set"] = sorted(response["response_set"], key=lambda x: x["id"],reverse=True)
    return response

    
def validate(self, attrs):
    print("Validation in on going")
    return attrs

Ошибка вызвана ResponsePolymorphicSerializer, как я уже сказал, этот подход работает нормально, если я использую обычный сериализатор. Но в этом случае мне нужно сделать это с помощью полиморфного.

Здесь приведено определение моего полиморфного сериализатора

class ResponsePolymorphicSerializer(PolymorphicSerializer):
    model_serializer_mapping = {
        models.FreeTextResponse: FreeTextResponseSerializer,
        models.ShortTextResponse: ShortTextResponseSerializer,

Я был бы рад получить рекомендации по этому вопросу. Спасибо.

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