Параметр `fields` должен быть списком, кортежем или« __all__ ». Получил ул. - PullRequest
0 голосов
/ 28 мая 2020

Я пытаюсь создать комментарий для своей модели статьи, но у меня проблема в части сериализатора, где написано:

The `fields` option must be a list or tuple or "__all__". Got str.

Я уже включил необходимые части, но не знаю, где проблема исходит от.

Models.py

class Comment(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    author = models.OneToOneField(UserProfile, on_delete=models.CASCADE, related_name='author1')
    article = models.OneToOneField(Article, on_delete=models.CASCADE, related_name='author2')
    content = models.CharField(max_length=100)

Serializers.py


class CommentCreateSerializer(serializers.ModelSerializer):
    content = serializers.CharField(required=False)

    class Meta:
        model = Comment
        fields = ('content')

    def create(self, validated_data):
     return Comment.objects.create(**validated_data)

Кто-нибудь знаете почему?

1 Ответ

0 голосов
/ 28 мая 2020

Это должно быть

fields = ('content',)

Это потому, что ('content') - это строка с ненужными скобками , где ('content',) - это кортеж


В качестве альтернативы вы также можете попробовать это ...

fields = ['content']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...