Django Rest Framework: De Serializing A String To An Integer And Vice Versa
We are using Django Rest framework to serialise and deserialise json response from a third party API. I need to translate the string field values to a numeric value in our system.
Solution 1:
To display string instead of int you can use get_FOO_display
model's attribute. To convert string to int during creation process you can override create()
method like this:
classResultsSeializer(serializers.ModelSerializer):
inferred_result = serializers.CharField(source='get_inferred_result_display')
classMeta:
model = models.Experiment
fields = ('inferred_result',)
defcreate(self, validated_data):
dispplayed = validated_data.pop('get_inferred_result_display')
back_dict = {k:v for v, k in models.Experiment.RESULTS}
res = back_dict[dispplayed]
validated_data.update({'inferred_result': res})
returnsuper(ResultsSeializer, self).create(validated_data)
Same way you need to override update()
if you need.
Post a Comment for "Django Rest Framework: De Serializing A String To An Integer And Vice Versa"