Persisting the template name for deployments

But then you manipulate user's data, which is worse.  

The model isn't the data.  The record still exists in the database without a name.  Adding a default value to the model's reader for that attribute reflects the intent here: that deployments without a name should have "Unnamed Deployment" displayed as their name.  When exercising the API method to get a deployment, this default value is part of the response, which is the display of the API since the remote agent has no UI.  

If we create a DeploymentSerializer that renders the "Unnamed Deployment" as the name if there is no name, would that be more acceptable than a model method?