aboutsummaryrefslogtreecommitdiffstats
path: root/brevisurl/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'brevisurl/views.py')
-rw-r--r--brevisurl/views.py19
1 files changed, 12 insertions, 7 deletions
diff --git a/brevisurl/views.py b/brevisurl/views.py
index 21cd1a5..82cf875 100644
--- a/brevisurl/views.py
+++ b/brevisurl/views.py
@@ -3,8 +3,10 @@ import logging
from django.http import Http404
from django.contrib.sites.models import Site
from django.views.generic.base import RedirectView
+from django.core.urlresolvers import reverse
from django.core.exceptions import ImproperlyConfigured
+import brevisurl.settings
from brevisurl import get_connection
from brevisurl.models import ShortUrl
@@ -21,14 +23,17 @@ class BrevisUrlRedirectView(RedirectView):
log.exception('Token not found in keyword arguments')
raise Http404
connection = get_connection('brevisurl.backends.local.BrevisUrlBackend')
- protocol = connection.PROTOCOL
+ if brevisurl.settings.LOCAL_BACKEND_DOMAIN is not None:
+ domain = brevisurl.settings.LOCAL_BACKEND_DOMAIN.rstrip('/')
+ else:
+ try:
+ site = Site.objects.get_current()
+ domain = '{0}://{1}'.format(connection.PROTOCOL, site.domain)
+ except ImproperlyConfigured:
+ log.exception('No site object configured for this django project')
+ raise Http404
try:
- site = Site.objects.get_current()
- except ImproperlyConfigured:
- log.exception('No site object configured for this django project')
- raise Http404
- try:
- short_url = '{0}://{1}/{2}'.format(protocol, site.domain, token)
+ short_url = '{0}{1}'.format(domain, reverse('brevisurl_redirect', kwargs={'token': token}))
short_url_obj = ShortUrl.objects.get(backend=connection.class_path, shortened_url=short_url)
except ShortUrl.DoesNotExist:
log.exception('No shortened url found for backend: "%s" and token: "%s"', connection.class_path, token)