serialchemy icon indicating copy to clipboard operation
serialchemy copied to clipboard

Add support for Enums to be used on a model's polymorphic identity on PolymorphicModelSerializer

Open lucasvbleite opened this issue 1 year ago • 0 comments

Right now, if a model has a polymorphic_identity as an Enum, they keys of the sub_serializers are a dict who's keys are enums, so self.sub_serializers.get(model_identity) returns None because model_identity is a string

    def load(self, serialized, existing_model=None, session=None):
        if self.is_polymorphic:
            model_identity = serialized.get(self.identity_key)
            if model_identity and self.sub_serializers.get(model_identity):
                return self.sub_serializers[model_identity].load(
                    serialized, existing_model, session
                )
        return super().load(serialized, existing_model, session)

lucasvbleite avatar Apr 18 '24 16:04 lucasvbleite