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

时间:2017-09-27 10:26:29

标签: python django django-rest-framework

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

  

['string1','string2','string3','string4','string5']

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

"non_field_errors": [
            "Invalid data. Expected a dictionary, but got str."
        ]

这是我的序列化器:

class URLRequestedSerializer(serializers.Serializer):
    urls = serializers.ListField(child=serializers.CharField())

如何将序列化器设置为除字符串列表外?

2 个答案:

答案 0 :(得分:1)

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

你发布了:

['string1', 'string2', 'string3', 'string4', 'string5']

但你应该张贴:

{
    "urls": ["string1", "string2", "string3", "string4", "string5"]
}

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

答案 1 :(得分:-2)

从postman收到的字符串列表是django中的字符串类型,尝试使用eval进行转换。