Django - Сериализатор конечных точек PUT должен игнорировать отсутствующие атрибуты

поэтому у меня есть эта конечная точка

def put(self, request):
    user_uuid = get_uuid_from_request(request)
    user_obj = User.objects.get(pk=user_uuid)
    serializer = UpdateUserSerializer(user_obj, data=request.data)

    if serializer.is_valid():
        serializer.save()
        return Response(serializer.data, status=status.HTTP_200_OK)
    else:
        return Response(dict(error=serializer.errors, user_msg=generic_error_message),
                        status=status.HTTP_400_BAD_REQUEST)

со следующим сериализатором

class UpdateUserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ('given_name', 'middle_name', 'family_name', 'birthdate')

если входящий запрос имеет недостающие значения, как в

request.data ={'given_name':'Tom'}

В идеале я бы хотел, чтобы он обновлял все, что не отсутствует в текущей сущности. Как мне это сделать? В настоящее время, когда я тестирую его, если атрибут отсутствует, он жалуется.

Вы можете добавить флаг partial=True в сериализатор для поддержки partial updates:

serializer = UpdateUserSerializer(user_obj, data=request.data, partial=True)
Вернуться на верх