maybe cleaner and potential faster without an `except`, also do we need to check for a `pk` key with `get`?  below on line 383 we are assuming that it exists.  If we do check we don't need `None` in `get` since that is default.   Assuming no check is needed, what about to replace lines 377 to 383:

```python
pk = self.kwargs[pk]
if isinstance(pk, basestring):
    self.lookup_fields = ('owner', 'id_string')
    self.kwargs['id_string'] = pk
```