aboutsummaryrefslogtreecommitdiffstats
path: root/src/shorturls/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/shorturls/views.py')
-rw-r--r--src/shorturls/views.py10
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))