توی serializer های DRF گاهی لازمه وقتی متد list() اون صدا زده میشه باید قبلش دیتایی که ازش گرفته میشه تغییری بدیم برای این کار از متد to_representaion استفاده میکنیم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
class LinkAPISerializer(serializers.ModelSerializer): provider_name = serializers.CharField(source='provider.name_fixed', read_only=True) consumer_name = serializers.CharField(source='consumer.name_fixed', read_only=True) interface_name = serializers.CharField(source='interface.name_fixed', read_only=True) interface2_name = serializers.CharField(source='interface2.name_fixed', read_only=True) protocol_name = serializers.CharField(source='protocol.name_fixed', read_only=True) lt_display = serializers.CharField(source='get_lt_display', read_only=True) class Meta: model = Link fields = [ 'id', 'provider', 'provider_name', 'consumer', 'consumer_name', 'interface', 'interface_name', 'interface2', 'interface2_name', 'protocol', 'protocol_name', 'lt', 'lt_display', 'description', 'api', 'frequency', 'ProviderVerified', 'ConsumerVerified', 'ESBVerified', 'api_gateway', 'active' ] def to_representation(self, instance): data = super().to_representation(instance) if data.get('description'): data['description'] = data['description'].strip('\"') return data |