Поле ввода списка в django rest frameowrk просматриваемый api - mongoengine

Я создал serializer который принимает аргумент списка tags, но на django-rest-framework API-интерфейс, кажется, не работает.

Код:

модель

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'
        ]

Посмотреть

class SocialFeedCreateAPIView(CreateAPIView):
    queryset = SocialFeed.objects.all()
    serializer_class = SocialFeedCreateSerializer

Но на доступном для просмотра API, Это показывает простое поле ввода для ввода тегов, и я не знаю, в каком формате я должен поместить теги в просматриваемом API сторона, и я не получаю список тегов вместо строки.

Я пробовал следующие материалы:

#1 - ['social media', 'digital media', 'digital']
#2 - 'social media', 'digital media', 'digital'
#3 -  social media, digital media, digital
#4 - "social media", "digital media", "digital"

Но на MongoDbКогда я выбираю документ, вместо строки отображается список тегов, например:

"tags" : [
    "['social media','digital media','digital']"
]

"tags" : [
    "'social media','digital media','digital'"
]

"tags" : [
    "social media, digital media, digital]"
]

"tags" : [
    "\"social media\", \"digital media\", \"digital\""
]

Требуемый выход

"tags" : [
    "social media",
    "digital media",
    'digital"
]

Если кто-то сталкивался с той же проблемой, пожалуйста, направьте меня.

1 ответ

Решение

DRF поддерживает только поля Django. Вероятно, вам нужно сделать некоторые поля более подробными в объявлении сериализатора, например, сделать tags наследовать от serializer.ListField,

Другие вопросы по тегам