首页 > 解决方案 > `fields` 选项必须是列表或元组或“__all__”。得到了str

问题描述

我正在尝试为我的文章模型创建评论,但我在它说的序列化程序部分遇到问题

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

我已经包含了需要的部分,但我不知道问题出在哪里。

模型.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)

序列化程序.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)

有人知道为什么吗?

标签: django

解决方案


它应该是

fields = ('content',)

这是因为,('content')是一个带有不必要括号的字符串,其中 as('content',)是一个元组


或者,你也可以试试这个……

fields = ['content']

推荐阅读