this would be better as
```python
try:
    product_id = self.product_id
except KeyError:
    raise Http404

try:
    return Product.get(product_id)
except ResourceNotFound:
    raise Http404
```

Or maybe even
```python
@property
def product_id(self):
    return self.kwargs.get('prod_id', None)

if not self.product_id:
    raise Http404
return Product.get(self.product_id)
```

Since wouldn't an invalid product ID be an error condition that we would want to 500 on?