Сериализаторы:
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 возвращает 400 Bad Request («Неверный ввод»).
{
"head_pk": 1,
"hair_pk": "89d4c318-c9bf-42cd-b4c4-b7e70a2c8f40",
"name": "gewgew",
"gender": "W"
}
Я хочу отправить параметры без тела, head_adjust, hair_adjust.