If `key.field_name` is not in `self._data`, then the old code raised a `KeyError` with a better message than this new code does. Why the change?