diff options
Diffstat (limited to 'src/shorturls/views.py')
| -rw-r--r-- | src/shorturls/views.py | 10 | 
1 files changed, 7 insertions, 3 deletions
| diff --git a/src/shorturls/views.py b/src/shorturls/views.py index 1737472..d811fde 100644 --- a/src/shorturls/views.py +++ b/src/shorturls/views.py @@ -16,8 +16,12 @@ def redirect(request, prefix, tiny):      # any of that stuff goes wrong.      try:          app_label, model_name = settings.SHORTEN_MODELS[prefix].split('.') -        model = models.get_model(app_label, model_name) -        if not model: raise ValueError +        try: +            model = models.get_model(app_label, model_name) +        except LookupError: +            raise Http404('Bad model.') +        if not model: +            raise ValueError          id = base62.to_decimal(tiny)      except (AttributeError, ValueError, KeyError):          raise Http404('Bad prefix, model, SHORTEN_MODELS, or encoded ID.') @@ -50,4 +54,4 @@ def redirect(request, prefix, tiny):      else:          base = 'http://%s/' % RequestSite(request).domain -    return HttpResponsePermanentRedirect(urlparse.urljoin(base, url))
\ No newline at end of file +    return HttpResponsePermanentRedirect(urlparse.urljoin(base, url)) | 
