def METHOD_NAME(self, request, pk):
    # Update science metadata
    resource, _, _ = view_utils.authorize(
        request, pk,
        needed_permission=ACTION_TO_AUTHORIZE.EDIT_RESOURCE)
    metadata = []
    put_data = request.data.copy()
    # convert the QueryDict to dict
    if isinstance(put_data, QueryDict):
        put_data = put_data.dict()
    try:
        resource.metadata.parse_for_bulk_update(put_data, metadata)
        hydroshare.update_science_metadata(pk=pk, metadata=metadata, user=request.user)
    except Exception as ex:
        error_msg = {
            'resource': "Resource metadata update failed: %s, %s"
                        % (ex.__class__, str(ex))
        }
        raise ValidationError(detail=error_msg)
    resource = hydroshare.get_resource_by_shortkey(shortkey=pk)
    serializer = resource.metadata.serializer
    return Response(data=serializer.data, status=status.HTTP_202_ACCEPTED)