I can't think of a better way to do this offhand.  Two possible options come to mind:

* explicitly check for uniqueness, and redirect to existing book on duplicate
* storing the error message in the model:
```file_sha256sum = models.charField(unique=True, error_messages={'unique':"The book was not saved because the file already exists in the database."})```

But I'm not convinced either is more clear than the exiting try/except