Reputation: 11315
Say that my serializer looks like so
class EntitySerializer(serializers.ModelSerializer):
entity_instance = EntityInstanceSerializer(many=True)
tags = EntityTagSerializer(many=True)
class Meta:
model = Entity
fields = ('id', 'entity_instance', 'tags', 'note', 'source')
class EntityTagSerializer(serializers.ModelSerializer):
class Meta:
model = EntityTagLabel
fields = ('entity_tag_label',)
My tags model looks like this:
class EntityTag(models.Model):
entity_tag_label = models.CharField(max_length=255, unique=True)
def __str__(self):
return self.entity_tag_label
Now this is fine and all, but my response looks like this:
...
"tags": [
{
"entity_tag_label": "SENDER"
}
],
Is it possible for my tags serializer to simply return the string representation of each tag? That way I would just have
"tags": [
"Sender",
],
as an example
Upvotes: 2
Views: 2508
Reputation: 397
You can use a SlugRelatedField to do this. Something like:
class EntitySerializer(serializers.ModelSerializer):
entity_instance = EntityInstanceSerializer(many=True)
tags = serializers.SlugRelatedField(
slug_field='entity_tag_label',
many=True,
read_only=True
)
class Meta:
model = Entity
fields = ('id', 'entity_instance', 'tags', 'note', 'source')
Upvotes: 2