我是 Django 的新手,我的项目是 REST 当我使用 postman 检查 URL 时会出现此错误:
"detail": "不支持的媒体类型"multipart/form-data; boundary=----WebKitFormBoundaryAU1ShXHTHrfcQr61"在请求中。"
并且在使用 curl 时发生了这个错误:
{"detail":"JSON 解析错误 - 期望值:第 1 行第 1 列(字符 0)"}
这是我对示例 URL 的看法:
@api_view(["POST"])
def register(request):
user_data = request.data
if user_data:
serializer = UserSerializers(data=user_data)
if serializer.is_valid():
registerInfo = {
'name': serializer.validated_data['name'],
'degImage': serializer.validated_data['degImage'],
}
serializer.save(registerInfo)
return Response({
"code": 200,
"status": "successful",
"message": "code was sent try to validate code"
})
else:
return Response({
"status": "error",
"error": "Bad request"
})
else:
return Response({
"status": "error",
"error": "Empty request"
})
这是序列化器类:
class UserSerializers(serializers.Serializer):
name = serializers.CharField(required=True)
degImage = serializers.ImageField(required=True)
def save(self, validated_data):
user = Users(
name=validated_data['name'],
degImage=validated_data['degImage']
)
user.save()
return user
和模型:
class Users(models.Model):
name = models.CharField(max_length=20, null=True)
degImage = models.ImageField(null=False, blank=False, default='detImage')
最佳答案
在 postman set 中,body 为 Raw 并从下拉菜单中选择 JSON 并发送请求。
或
改变Django rest framework中的解析器
设置.py
REST_FRAMEWORK = {
'DEFAULT_PARSER_CLASSES': (
'rest_framework.parsers.FormParser',
'rest_framework.parsers.MultiPartParser'
)
}
关于python - 不支持的媒体类型 Django API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47874233/