rahul.m
rahul.m

Reputation: 5854

DRF how to allow list in serializer CharField

I have basic serializers with one CharField, what i want is CharField to allow list.

class BasicSr(serializers.ModelSerializer):

    answer = serializers.CharField()
    class Meta:
        model = MyModel
        fields = ('answer',)

my input :

e.g 1 
"answer":["a1", "a2"]
e.g 2
"answer":"this is plain ans"

both inputs should allow.

error message while validating serializer

"Not a valid string."

Upvotes: 0

Views: 577

Answers (1)

JPG
JPG

Reputation: 88459

I would create a new serializer class for that,

class MySerializerField(serializers.Field):

    def to_internal_value(self, data):
        # do some validation
        # after validation convert the data into native form
        return data

    def to_representation(self, value):
        # change some representation, if you want
        return value


class BasicSr(serializers.ModelSerializer):
    answer = MySerializerField()

    class Meta:
        model = MyModel
        fields = ('answer',)

Upvotes: 2

Related Questions