Last active
August 29, 2017 05:32
-
-
Save sergeybe/2e0b48373d8ee0b0a81b9e31b3dba3c7 to your computer and use it in GitHub Desktop.
Rename fields in DRF serializer
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class RenameFieldsSerializerMixin(object): | |
def rename_field_from(self, name): | |
return name.upper() | |
def rename_field_to(self, name): | |
return name.lower() | |
def to_internal_value(self, data): | |
instance = super().to_internal_value(data) | |
new_data = OrderedDict() | |
for name, value in data.items(): | |
new_data[self.rename_field_to(name)] = value | |
return super().to_internal_value(new_data) | |
def to_representation(self, instance): | |
data = super().to_representation(instance) | |
new_data = OrderedDict() | |
for name, value in data.items(): | |
new_data[self.rename_field_from(name)] = value | |
return new_data |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment