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)
如何使序列化器排除字符串列表?
看起来您在 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 正文中的正确字段:)