Django Rest框架如何序列化字符串列表?

ott*_*omd 5 python django django-rest-framework

我想在邮递员中给出一个字符串列表,例如:

['字符串1','字符串2','字符串3','字符串4','字符串5']

但是当它到达serializer.is_valid()时它给了我:

"non_field_errors": [
            "Invalid data. Expected a dictionary, but got str."
        ]
Run Code Online (Sandbox Code Playgroud)

这是我的序列化器:

class URLRequestedSerializer(serializers.Serializer):
    urls = serializers.ListField(child=serializers.CharField())
Run Code Online (Sandbox Code Playgroud)

如何使序列化器排除字符串列表?

oli*_*del 3

看起来您在 Postman 中发布了一个列表而不是字典作为 JSON,正如错误消息所述。

您发布了:

['string1', 'string2', 'string3', 'string4', 'string5']
Run Code Online (Sandbox Code Playgroud)

但你应该发布:

{
    "urls": ["string1", "string2", "string3", "string4", "string5"]
}
Run Code Online (Sandbox Code Playgroud)

请记住,您的序列化程序定义了该字段urls,因此您必须将数据发送到 JSON 正文中的正确字段:)