Reputation: 2028
I have created a serializer
that takes a list argument tags
, but on the django-rest-framework
browsable api, It doesn't seem to work.
Code:
Model
class SocialFeed(Document):
platform = StringField(max_length=20, required=True, choices=('facebook', 'twitter', 'instagram'))
tags = ListField(default=None)
created_at = DateTimeField(default=datetime.now(), required=True)
Serializer
class SocialFeedCreateSerializer(DocumentSerializer):
class Meta:
model = SocialFeed
fields = [
'id',
'platform',
'tags'
]
View
class SocialFeedCreateAPIView(CreateAPIView):
queryset = SocialFeed.objects.all()
serializer_class = SocialFeedCreateSerializer
But on the browsable API
, It shows a simple input box to enter tags, and I don't know what format should I put the tags in on the browsable API
side, and I am not receiving list of tags instead a string.
I have tried following inputs:
#1 - ['social media', 'digital media', 'digital']
#2 - 'social media', 'digital media', 'digital'
#3 - social media, digital media, digital
#4 - "social media", "digital media", "digital"
But on the MongoDb
, when I fetch the document, It shows string instead a list of tags, like this:
"tags" : [
"['social media','digital media','digital']"
]
"tags" : [
"'social media','digital media','digital'"
]
"tags" : [
"social media, digital media, digital]"
]
"tags" : [
"\"social media\", \"digital media\", \"digital\""
]
Required Output
"tags" : [
"social media",
"digital media",
'digital"
]
If anybody has faced the same issue, please guide me.
Upvotes: 0
Views: 668
Reputation: 20996
DRF does only support Django's fields. You likely need to make some fields more explicits in the serializer's declaration, like making tags
inherit from a serializer.ListField
.
Upvotes: 1