From 897af7374f0f7e2ab1e8ce676ebdbd536ad40ae8 Mon Sep 17 00:00:00 2001 From: Vladimir Gorej Date: Tue, 29 May 2012 17:17:48 +0200 Subject: Fixed bug with brevisurl redirect view --- brevisurl/views.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'brevisurl/views.py') 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) -- cgit v1.2.3