【发布时间】:2018-12-13 14:13:25
【问题描述】:
序列化器:
class AvatarBaseSerializer(Serializer):
uuid = ReadOnlyField()
user = UserBaseSerializer(read_only=True)
name = CharField(allow_blank=True)
GENDER = (("M", "Man"), ("W", "Woman"))
gender = ChoiceField(choices=GENDER)
body = BodySerializer(partial=True, required=False)
head = HeadBaseSerializer(read_only=True)
head_pk = IntegerField(write_only=True)
head_adjust = HeadAdjustBaseSerializer(partial=True, required=False)
hair = HairBaseSerializer(read_only=True)
hair_pk = UUIDField(write_only=True)
hair_adjust = HairAdjustBaseSerializer(partial=True, required=False)
thumbnail = ImageField(required=False, allow_null=True)
视图集:
class AvatarViewSet(viewsets.ModelViewSet):
queryset = Avatar.objects.all()
serializer_class = AvatarBaseSerializer
permission_classes = (permissions.UserIsRequestUserPermission,)
...
def partial_update(self, request, *args, **kwargs):
self.check_thumbnail_file_size(request)
return super().partial_update(request, *args, **kwargs)
我通过 PATCH 方法发送以下参数。但是 Django rest 框架返回 400 Bad Request("Invalid Input")。
{
"head_pk": 1,
"hair_pk": "89d4c318-c9bf-42cd-b4c4-b7e70a2c8f40",
"name": "gewgew",
"gender": "W"
}
我想发送没有body、head_adjust、hair_adjust的参数。
【问题讨论】:
-
发布错误详情。它一定指出了有错误的字段
标签: django django-rest-framework